Службы Java перестают работать, когда пользователь выходит из системы

Некоторые предпосылки:

У меня есть четыре приложения, которые запускаются как службы на компьютере под управлением Windows XP, два из которых – Java-приложения. Все четыре приложения первоначально предназначались для запуска с сервера Linux, и к ним подключались три компьютера под управлением Windows XP, но требования клиентов означали перенос этих приложений на Windows, чтобы все можно было запускать с одной машины.

Проблема:

Поскольку мы не хотели радикально изменить что-либо в нашем коде, чтобы запускать приложения в качестве сервисов, мы использовали instsrv.exe и srvany.exe для установки и запуска приложений. Это отлично подходит для двух приложений c ++, и по большей части приложения Java работают нормально. Однако, когда пользователь выходит из системы, приложения Java останавливаются. Фактические службы все еще запущены, потому что java.exe (или javaw.exe , не имеет значения, который) все еще работает, но он больше не запускает приложение. Что касается менеджера служб, все работает нормально, и поэтому он не перезапускает службу, как должен. Обратите внимание, что основной пользователь использует ограниченную учетную запись и, следовательно, не может перезапустить службы вручную.

Материал, который мы рассмотрели / попробовали:

srvany.exe. Был выбран в первую очередь потому, что он бесплатный (как в пиве) для использования и относительно легко настраивается. Мы также рассмотрели srvstart.exe , но я считаю, что это srvstart.exe ту же проблему. Есть две посвященные оболочки Java-сервиса, которые мы изучали, но были исключены из рассмотрения из-за условий лицензирования и / или сложности их настройки. Обратите внимание, что YAJSW не рассматривался первоначально и, если позволяет время, может быть протестирован.

Проблема, похоже, не существует в Windows 7, но поскольку нашему клиенту требуется Windows XP, это не вариант.

Я также попытался разрешить взаимодействие с рабочим столом для двух java-приложений, но это не решает проблему при использовании javaw.exe и показывает окно командной строки при использовании java.exe , что крайне нежелательно, даже если оно действительно разрешает проблема. До сих пор наша мера пресечения заключалась в том, чтобы сообщить клиенту не выходить из учетной записи, а использовать только пользователя коммутатора.

Есть ли что-то еще, что мне не хватает или нужно попробовать? Это также чувствительно к времени, поскольку, как только эти устройства выходят за дверь, может быть очень сложно реализовать исправление на месте.

One Solution collect form web for “Службы Java перестают работать, когда пользователь выходит из системы”

Вам нужно добавить флаг -Xrs в вашу командную строку java.exe, чтобы исключить JVM при выходе из машины XP. Проблема не возникает в Windows 7 (или Vista / Server 2008), поскольку «Изоляция сеанса 0» запрещает пользователям входить в систему (и, таким образом, отключается) Session 0, место, где выполняются службы.

Однако будьте осторожны – если ваше приложение java ловит события выключения, они могут не срабатывать, как ожидалось, когда вы используете флаг -Xrs. Это проблема для вас?

  • Сохранить вывод Ping в текстовом файле
  • Что такое переключаемая графика?
  • Автоматическая регистрация в Windows XP
  • Удаленный рабочий стол с поддержкой нескольких мониторов в XP?
  • Рекомендуемые бесплатные кодеки для воспроизведения DVD в Windows Media Player 11?
  • Как сделать копию принтера в Windows 7?
  • Беспроводное подключение к Интернету подключается, но интернет не работает (пакеты не получены). Проводной
  • Остановка командной строки из текущего каталога в Windows XP?
  • Команда WinXP dir: 3 и 4 расширения char одинаковы?
  • Как я могу запускать веб-страницу в планировщике задач каждый день?
  • Как скрыть (не удалять) любой контакт из списка Skype?
  • Interesting Posts

    Как изменить размер окна, чтобы он был больше физического экрана?

    Солить свой пароль: лучшие практики?

    Среднее нажатие на ноутбук Lenovo

    Изменение размера изображения CSS и сохранение пропорций

    Как я могу отсортировать двухмерный массив в MATLAB по отношению к одному столбцу?

    Виртуальные хосты Apache2 не распознают должным образом

    Невозможно изменить язык отображения в Windows 10

    Что такое дочернее действие MVC?

    Как быстро получить Hardware-ID в C #?

    Автоматический ответ Outlook, сохраняющий основной текст входящего сообщения

    Не удалось установить Windows XP: появляется сообщение «Голубой экран» перед «Запуск установки Windows»

    Карта FTP-сервера как (локальный) диск в Finder

    Не удалось получить LocalDateTime от TemporalAccessor при анализе LocalDateTime (Java 8)

    В чем отличия между файлами .txt Linux и Windows (кодировка Unicode)

    Обновление Windows в Windows Vista

    Давайте будем гением компьютера.