Как отключить ведение журнала stdout для демона apache commons (Procrun)?

Я использую Apache Commons Daemon Tool Procrun установить инструмент командной строки Java в качестве службы Windows.

Инструмент Java отображает много контента на консоли во время работы. Любой sysout будет автоматически записан демоном в лог-файл. Этот файл не может быть удален, пока служба работает.

Проблема: мой сервис и мое приложение вряд ли когда-либо перезапустятся. Это приводит к демону StdOutput файл журнала размером в несколько сотен ГБ в месяц, который я могу очистить только вручную, предварительно остановив приложение.

Вопрос: возможно ли отключить этот сервис журналирования?

3 ответа

Решение

Вы можете избежать записи ваших stdout и stderr в файл, пропустив имя файла в скрипте конфигурации для --StdOutput а также --StdError параметры. У меня это работает с v1.0.15.0

Например:

D:\prunsrv.exe //IS//SomeService ^
--DisplayName="SomeService" ^
--Description="Some Procrun Service" ^
--Startup=auto ^
--Install=%CD%\prunsrv.exe ^
--Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll ^
--Classpath=%CD%\MyApplication-SNAPSHOT.jar; ^
--StartMode=jvm ^
--StartClass=com.myDomain.bootstrap ^
--StartMethod=start ^
--StartParams=start ^
--StopMode=jvm ^
--StopClass=com.myDomain.bootstrap ^
--StopMethod=stop ^
--StopParams=stop ^
--StdOutput= ^
--StdError= ^
--LogPath=%CD%\logs ^
--LogLevel=Debug ^

Лучшая практика для меня - пакетный файл, который делает все для меня очень простым:

installService.bat

REM Main
set SERVICE_NAME=MyService
set PR_DESCRIPTION=My Description
set PR_INSTALL=C:\procrun-sample-master\prunsrv.exe
set PR_STARTUP=auto

REM Java
set PR_JVM=%JAVA_HOME%\bin\server\jvm.dll
set PR_CLASSPATH=myservice.jar

REM LOG disabled
set PR_LOGPATH=C:\procrun-sample-master\log
set PR_STDOUTPUT=
set PR_STDERROR=
set PR_LOGLEVEL=Warn

REM Start Config
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=package.Classname
set PR_STARTMETHOD=start

REM Stop Config
set PR_STOPMODE=jvm
set PR_STOPCLASS=package.Classname
set PR_STOPMETHOD=stop

REM Install
prunsrv.exe //IS//%SERVICE_NAME%

Решил эту проблему, выполнив следующие шаги.

  1. Остановите службу Apache через Сервисы
  2. Откройте командную строку (cmd) от имени администратора
  3. Перейдите к вашему файлу tomcat exe, т.е.

    cd D:\MyApplication\Apache-Tomcat\bin\

  4. Запустите команду ниже

    tomcat7.exe //US//JasperGenDoc --StdOutput=

  5. Запустите сервис Apache через Сервисы
Другие вопросы по тегам