Как предотвратить запуск службы команды Tomcat командным процессом (cmd.exe)? - PullRequest
0 голосов
/ 04 марта 2020

Каждый раз, когда я запускаю службу Tomcat на Windows, всегда также выполняется процесс cmd.exe. Когда я выключаю Tomcat, он все еще работает, поэтому у меня есть несколько его экземпляров, если служба останавливается несколько раз (например, по расписанию для обслуживания). Это также похоже на блокировку файлов журнала, поэтому их нельзя переименовывать / удалять, даже если они принадлежат предыдущему дню. Если это делается ежедневно, то через месяц будет запущено 30 экземпляров cmd.exe (а также подпроцесс conhost.exe для каждого из них).

Выполнение команды: cmd.exe /c start http://localhost:8080, который запустит сайт в браузере по умолчанию, если будет работать как пользователь. Почему служба также делает это, поскольку она просто оставляет процесс cmd.exe запущенным, пока вы его не уничтожите. Как я могу предотвратить это?

Редактировать: Служба Tomcat устанавливается с помощью команды service.bat и имеет версию 9.0.31. Это также происходит с Tomcat 7.0.82, установленным с помощью загрузки установщика, поэтому проблема не указана c для Tomcat 9.

Java Параметры:

-Dcatalina .home = D: \ liferay \ 7.3 \ tomcat-9.0.31
-Dcatalina.base = D: \ liferay \ 7.3 \ tomcat-9.0.31
-Dignore.endorsed.dirs = D: \ liferay \ 7.3 \ tomcat-9.0.31 \ одобрен
-D java .io.tmpdir = D: \ liferay \ 7.3 \ tomcat-9.0.31 \ temp
-D java .util.logging.manager = org. apache .juli.ClassLoaderLogManager
-D java .util.logging.config.file = D: \ liferay \ 7.3 \ tomcat-9.0.31 \ conf \ logging.properties
-Dfile .encoding = UTF8
-D java .locale.providers = JRE, COMPAT, CLDR
-D java. net .preferIPv4Stack = true
-Duser.timezone = GMT
-Xms2560m
-Xmx4096m
-XX: + UseG1G C
-XX: + UseStringDeduplication
-XX: MaxMetaspaceSize = 512m
-XX: MetaspaceSize = 512m
-XX: SurvivorRatio = 7
-XX: ParallelGCThreads = 8

...