#windows-services
#windows-services
Вопрос:
https://serverfault.com/questions/70028/pausing-a-not-pausable-service-pausing-a-not-pausable-service-from-the-command рассказывает о приостановке службы NOT_PAUSABLE. Как мне указать, что моя служба не может быть приостановлена с самого начала? Я хочу, чтобы моя служба поддерживала только операции запуска / остановки.
Ответ №1:
Когда вы создаете свой сервис, вы заполняете SERVICE_STATUS
структуру. Вызывается одно из полей в структуре dwControlsAccepted
. Один из вариантов для dwControlsAccepted
этого есть SERVICE_ACCEPT_PAUSE_CONTINUE
. Если вы не скажете, что поддерживаете паузу / продолжение, SCM сообщит, что это не поддерживает паузу / продолжение.
Ответ №2:
Проверка службы Windows :
например, проверка DNS-клиента
Service keyname : DNScache
Service Displayname : DNS Client
ИСПОЛЬЗОВАНИЕ : SC — ЗАПРОС
ЗАПУСТИТЕ CMD (командная строка) > Введите:
SC QUERY DNSCACHE
Результат:
SERVICE_NAME: DNSCACHE
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Код состояния:
- 4: Выполняется. Возможность остановки или приостановки зависит от самой службы
- 7: приостановлено. Возможность остановки или приостановки зависит от самой службы. конечно, продолжаемый
- 1: Остановлено. Уже остановлена, не может быть остановлена или приостановлена 😉
код
SC GETKEYNAME **YOUR SERVICE**
SC GETDISPLAYNAME **YOUR SERVICE**
SC >> Showing Other Command Available
[Забавно: я не могу получить имя ключа (SC GETKEYNAME) от DNS-клиента, но показываю отображаемое имя (SC GETDISPLAYNAME) из DNSCACHE]
Внимательно прочитайте вопрос еще раз по этой ссылке, я думаю, на него ответили 🙂
Службы Windows XP: http://ss64.com/nt/syntax-services.html
Ответ №3:
Я пришел к этому сообщению, пытаясь приостановить мою службу. Я смог установить это с помощью свойства CanPauseAndContinue в конструкторе моей службы.