Я зарегистрировал пользовательскую службу под названием customService с автоматическим (отложенным запуском ) в качестве опции типа запуска. Он был создан с использованием NSSM с помощью следующей команды

nssm install customService

Он запускает простой пакетный файл customService.bat содержащий две простые команды Windows

cd D:\To\Custom\Path
type NUL > 1.txt

Служба запускает этот пакетный файл, который создает пустой текстовый файл 1.txt в папке \To \Custom \Path.

проблема

Когда я выключаю и загружаю свою машину, 1.txt не создается. Однако в services.msc он показывает статус customService как Работающий . Почему это происходит?


Что я обнаружил

  1. При возникновении проблемы в журналах событий> Журналы Windows> Приложение ошибки не отображаются. Последний зарегистрированный журнал от службы MSSQLSERVER с уровнем информации и идентификатором события 8128. Прошло ровно 15 минут.
  2. В services.msc > customService Status отображается состояние Running. Когда я щелкаю по нему правой кнопкой мыши, у меня появляется как минимум 3 варианта: Остановить, Пауза и Перезагрузка. Служба работает успешно (т. Е. Создан 1.txt), когда я нажал « Restart .
  3. В services.msc > свойства customService > вкладка Зависимости не отображается никаких зависимостей
  4. У меня нет абсолютно никаких проблем при перезагрузке компьютера (т. Е. Создается 1.txt).

Спецификации Windows

У меня Windows 10 Version 1607 (OS Build 14393.576) как показано при запуске команды winver . Также у меня установлены все обновления.

2 ответа2

1

Как вы определили услугу? Документация предполагает, что у вас должны быть такие команды запуска:

nssm set UT2003 Application C:\games\ut2003\System\UCC.exe
nssm set UT2003 AppDirectory C:\games\ut2003\System

(Подставляя в путь к вашему пакетному файлу)

В любом случае, NSSM звучит как излишнее. Почему бы просто не использовать планировщик задач?

0

Отказ от ответственности: это всего лишь грубый обходной путь, который, я надеюсь, может быть полезен другим, а не исправление. Обходной путь - вместо этого используйте Планировщик заданий.

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

Я пришел к этому подозрению, когда попытался использовать Task Scheduler для запуска моего .bat-файла вместо использования Сервиса. Когда я установил его на Run on system startup , после загрузки появилась вкладка «Предупреждение в истории» моей созданной задачи, в которой говорилось, что Task Scheduler did not launch task because user "(NONE)" was not logged on when the launching conditions were met . Следовательно, причина, по которой я думаю, что эта проблема каким-то образом связана с проблемами с учетной записью пользователя, хотя я могу ошибаться, потому что в журналах событий такого предупреждения / ошибки не возникало, когда я использовал Services для запуска моего пакетного файла.

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

Обратите внимание, что установка этой задачи на выполнение after logged on приведет к ее выполнению при входе в систему после выхода. Он не будет работать, когда вы вошли в систему после блокировки компьютера,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .