Есть ли способ в Java проверить состояние службы Windows?[закрыто]

StackOverflow https://stackoverflow.com/questions/127299

Вопрос

Я ищу библиотеку, которая позволит мне проверить состояние службы Windows, чтобы убедиться, что служба запущена и работает.Я заглянул в библиотеку Sigar, но она под лицензией GPL и поэтому я не могу ее использовать.Требуется коммерческая лицензия или лицензия BSD (ish), поскольку она будет включена в коммерческое программное обеспечение.

Это было полезно?

Решение

Если ничего больше не помогает, попробуйте придумать немного другой подход (если можете, конечно), например:

  • Существует множество бесплатных/несвободных программ, которые осуществляют мониторинг, включая мониторинг служб Windows (например,nagios, Zabbix и т. д.).Эти мониторы обычно имеют открытый API, в который ваше Java-приложение может интегрироваться различными способами.
  • Если у вас есть контроль над зависимым сервисным приложением, предоставьте вашему Java-приложению другой способ проверки (например,запустить фиктивный прослушиватель порта, создать файл и т. д.).Службы Windows не являются кросс-платформенными, поэтому вы не ожидаете поддержки в ближайшее время.

Другие советы

Я не думаю, что существует какой-либо способ сделать это на чистом Java, потому что в некоторых операционных системах нет понятия «сервисы», как в Windows.В наших проектах мы писали обертку для вызовов команды «sc» из командной строки.Чтобы получить статус услуги, вы можете сделать:

sc \\some-computer запрос "имя моей службы"

Вам придется вручную проанализировать вывод, но это довольно просто.

Я не знаю никаких библиотек, но в зависимости от того, насколько подробно вам нужно получить информацию, вы можете обойтись некоторыми командами оболочки и анализом вывода.

ЧИСТЫЙ СТАРТ наименование услуги

либо запустит службу, либо вернет вам сообщение об ошибке, сообщающее, что она уже запущена.Однако я не знаю ни одной команды, которая бы просто сообщала вам статус.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top