услуги windows - PullRequest
       7

услуги windows

0 голосов
/ 03 апреля 2009

Можно ли создать службу Windows, которую можно будет остановить до тех пор, пока машина не выключится. Поскольку я хочу запустить одно из своих приложений вместе со службой, возможно ли это сделать?

Спасибо, просто скажите, как запустить приложение вместе со службой.

Ответы [ 5 ]

3 голосов
/ 03 апреля 2009

Вы не можете создать процесс, который невозможно убить в Windows. В противном случае Windows будет делать это с критическими процессами (убить csrss.exe для быстрого BSOD). С помощью тщательной настройки ACL для служб и процессов вы можете сделать это сложнее, но это всегда можно обойти с привилегиями Take Ownership и Debug.

2 голосов
/ 03 апреля 2009

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

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

1 голос
/ 02 декабря 2014

Службу Windows можно отключить, указав dwControlsAccepted из структуры SERVICE_STATUS для принятия только завершения работы. Затем используйте setservicestatus, чтобы применить состояние. Но процесс можно убить. Просто остановка службы через scm предотвращена

0 голосов
/ 24 июля 2010

Как отмечают другие (особенно Ричард), практически невозможно сделать процесс Windows "неубиваемым".

Если ваша цель - запускать ваше приложение 24/7, я предлагаю использовать такой продукт, как AlwaysUp , который запустит ваше приложение как службу, внимательно отслеживает его и быстро запускает его снова, если не удается по любой причине.

Удачи!

0 голосов
/ 03 апреля 2009

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

Ценность этого подхода действительно будет зависеть от характера ваших задач. Я видел, как этот подход поддерживал слегка нестабильную службу (это была устаревшая система, и у команды не было времени, чтобы переписать ее немедленно, поэтому они использовали ее в качестве лейкопластыря).

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