Службы 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. Это проблема для вас?

  • Мониторинг калибровочных инструментов и программного обеспечения
  • Как изменить размер окна, чтобы он был больше физического экрана?
  • Где находятся значки папок, созданные с помощью свойств папки, хранящихся в реестре?
  • Открытие оболочки Explorer с правами администратора на XP (с установленным IE7)
  • Почему мой компьютер не может ускориться после закрытия больших приложений?
  • Как я могу избавиться от помощника клипа Microsoft «Clippy»?
  • Microsoft Office 2007 - недостаточно памяти для открытия Word
  • Как я могу рекурсивно перечислить имена файлов (только) в DOS / Windows?
  • Как «предупреждение о безопасности Windows» вы хотите запустить этот файл .. »работают?
  • Достаточно ли брандмауэр Windows XP?
  • Где можно скачать Microsoft VC80.CRT версии 8.0.50608.0?
  • Interesting Posts

    Что представляет собой корень композиции в контексте инъекции зависимостей

    Как Chrome может искать среди заголовков / URL уже открытых вкладок, например Firefox?

    GCC и предварительно скомпилированные заголовки

    Использование функции print () (версия функции) в Python2.x

    Я не нашел class «ZipFile» в пространстве имен «System.IO.Compression»

    Как найти максимальный размер памяти?

    Не правовой JSONP API – Как получить данные без параметра CALLBACK

    Несколько мониторов (3) в ноутбуке с использованием порта HDMI и vga, только с графической картой

    Microsoft Word не может сохранить

    Программно получить скриншот страницы

    Объединение нескольких текстовых документов в один Open Xml

    Преобразование аргументов командной строки в массив в Bash

    Как использовать Bluetooth в эмуляторе Android?

    Возможно ли использование jumplist для Windows 7 CMD.exe?

    Жесты UIImageView (увеличение, поворот) Вопрос

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