Как запустить приложение, не будучи убитым после выхода из системы? - PullRequest
4 голосов
/ 14 декабря 2011

У меня есть Java-приложение, которое должно работать на сервере в фоновом режиме (приложение может быть запущено командой без графического интерфейса пользователя).Проблема в том, что: когда я выхожу с сервера, приложение убивается.Я ищу что-то похожее на nohup под Linux.Я нашел некоторые решения, но я не уверен, что лучше для моей ситуации (Windows Server 2003, Java-приложение запускается из BAT-Skript, перезапускается после загрузки машины)?Каковы плюсы и минусы решений?

Ответы [ 4 ]

3 голосов
/ 14 декабря 2011

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

3 голосов
/ 14 декабря 2011
  • Написать службу Windows (на Java, C # - я не думаю, что это имеет значение)
  • Запустить приложение из вашего сервиса

или

  • Запустите ваше приложение как оконную службу, используя Утилита 3D Party
1 голос
/ 14 декабря 2011

Просто добавьте к ответам выше.

Рассмотрите возможность использования http://wrapper.tanukisoftware.com. Это довольно зрелый и популярный (в отличие от ServiceEx и RunAsService).

0 голосов
/ 14 декабря 2011

Да, служба Windows определенно подходит, но есть несколько моментов, на которые следует обратить внимание при запуске приложения Java в качестве службы Windows. Большинство из них описаны в этом руководстве, в котором показано, как настроить java-приложение с нашим коммерческим приложением «все для обслуживания», AlwaysUp:

http://www.coretechnologies.com/products/AlwaysUp/Apps/RunJavaApplicationAsAService.html

Осторожно: вам почти наверняка понадобится флаг "-Xrs" в Windows 2003, чтобы предотвратить поведение при закрытии при выходе из системы, но все может стать непросто, если вы перехватываете события завершения работы. Дайте мне знать, если это проблема для вашей ситуации.

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