Запуск процесса Java в Windows даже после выхода пользователя из системы - PullRequest
5 голосов
/ 16 февраля 2009

У меня есть командный файл, который запускает процесс Java на сервере Windows 2003. В соответствии с политикой безопасности пользователи этой машины принудительно отключаются, если пользователь неактивен в течение определенного периода времени. Проблема в том, что когда пользователь выходит из системы, процесс также умирает.

Я запланировал новую задачу (Панель управления -> Запланированные задачи), выбрал опцию «Когда мой компьютер запускается» и предоставил там данные учетной записи пользователя. Но это, кажется, не имеет никакого эффекта, пользователь все еще вышел, и процесс умирает. Необходима ли перезагрузка, чтобы изменения вступили в силу? И после перезагрузки достигну ли я того, чего ожидаю (поддерживая процесс)?

В качестве альтернативы, решит ли этот процесс запуск в качестве службы Windows? Если да, пожалуйста, дайте мне знать, как я могу сделать программу на Java или командный файл для запуска в качестве службы Windows? Я бы предпочел не использовать какие-либо сторонние инструменты или библиотеки.

Спасибо

Ответы [ 5 ]

11 голосов
/ 16 февраля 2009

Если вы хотите, чтобы он запускался по расписанию, вы должны убедиться, что у вас не установлен флажок «запускаться только при входе пользователя», что обычно означает, что вам нужно ввести пароль.

Служба Windows была бы нормальным способом сделать это: Оболочка службы Java является сторонней, но ее используют многие люди.

Если вы действительно хотите не использовать сторонний метод, вы можете использовать svrany.exe (http://support.microsoft.com/kb/137890) в Windows NT или более поздней версии, но он не предназначен специально для Java.

5 голосов
/ 16 февраля 2009

Обработка процесса с помощью srvany.exe и запуск в качестве службы также будут работать.

http://support.microsoft.com/kb/137890

1 голос
/ 16 февраля 2009

Я использую Java Service Wrapper , чтобы запустить процесс Java в качестве службы Windows. Я предполагаю, что это работает аналогично srvany.exe, упомянутому в предыдущем сообщении.

0 голосов
/ 24 июня 2014

Согласно моему анализу,

Idle Solution будет писать программу создания службы Windows VC ++ (.net) для запуска .bat / .exe в качестве системной службы со всеми необходимыми методами обратного вызова в SCM.

Примечание : 1. Обертывание процесса с помощью srvany.exe не будет работать, так как у него нет процесса обратного вызова в SCM (Service Control Manager). 2. И Java-сервис Wrapper является сторонним API (многие из них имеют лицензию LGPL).

0 голосов
/ 15 декабря 2009

Я не знаю, это уместно, но мы используем флаг для jvm, чтобы он не выключался при выходе из системы

"java -Xrs"

Ссылка на описание солнц от -Xrs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...