Ранее на сайте публиковались материалы о создании служб Windows, преимущественно вручную. Однако, задачу можно упростить с помощью сторонних инструментов.
NSSM или «Non-Sucking Service Manager» — один из таких инструментов, позволяющих легко создавать и настраивать службы Windows 11/10 или предыдущих версий системы. О нём и пойдёт речь далее.
Использование NSSM
Скачать NSSM можно с официального сайта. Учитывайте, что для Windows 10 и 11 требуется загрузить предварительную версию. 2.24-101 (или более новый билд), релиз nssm 2.24 (2014) не подойдет.
Загруженный с официального сайта архив достаточно распаковать в удобное расположение. Фактически, вам потребуется лишь один файл nssm.exe в нужной разрядности, соответствующей разрядности вашей ОС.
Сами же шаги по созданию службы возможны в графическом интерфейсе:
- Нажмите клавиши Win+R на клавиатуре, введите
путь\к\nssm.exe install ИмяСлужбы
и нажмите Ctrl+Shift+Enter. Чтобы каждый раз не вводить путь, вы можете добавить nssm.exe в переменную среды PATH. Откроется графический интерфейс с несколькими вкладками.
- Application — задайте путь к исполняемому файлу службы, рабочую папку, параметры запуска.
- Details — при необходимости укажите отображаемое имя, описание службы, параметры запуска.
- Logon — укажите от какой учетной записи будет запущена служба (по умолчанию — Система).
- Dependencies — зависимости службы, если есть.
- Process — приоритет процесса и назначение ядер процессора.
- Shutdown — действия при отключении службы. Например, может посылать Ctrl+C в выполняемый вами скрипт Python при отключении службы в системной оснастке Windows
- Exit Actions — действия при выходе. Например, автоматический перезапуск службы.
- I/O — перенаправление операций ввода-вывода (журналы, ошибки и другие).
- Environment — переменные окружения вашей службы.
- Hooks — выполнение команд при определенных событиях.
- Не обязательно задавать все параметры. Укажите нужные и для установки нажмите кнопку Install Service, вы увидите уведомление о том, что служба была успешно установлена.
Альтернативный вариант — использование командной строки. Простой пример создания службы:
- Запустите командную строку от имени администратора.
- Введите команду (если путь содержит пробелы, возьмите его в кавычки):
путь\к\nssm.exe install ИмяСлужбы путь_к_исполняемому_файлу параметры_запуска
и нажмите Enter.
- Если всё было сделано верно, вы увидите, что служба была успешно создана.
- Дополнительно вы можете установить рабочую папку службы:
nssm.exe set ИмяСлужбы AppDirectory путь_к_папке
- Задать пути вывода журналов службы (выводы print) и ошибок:
nssm.exe set ИмяСлужбы AppStdout путь_к_файлу nssm.exe set ИмяСлужбы AppStderr путь_к_файлу
- Запустить службу можно с помощью
nssm start ИмяСлужбы
или в services.msc
- Полный список доступных параметров вы можете получить, запустив исполняемый файл nssm.exe:

С помощью параметра remove вы можете аналогичным образом удалить службы с помощью nssm.exe как в графическом интерфейсе, так и в интерфейсе командной строки. Это может быть удобнее чем удаление службы Windows вручную.
Для чего это может потребоваться
Может возникнуть вопрос: а в чем цель мероприятия для обычного пользователя? Наиболее частая задача — обеспечение автоматического запуска какого-либо инструмента и его работу даже без входа в Windows, например, медиа-сервера или игрового сервера, инструментов синхронизации, таких как Syncthing.
Другие возможные сценарии — запуск собственных скриптов для выполнения повторяющихся задач в виде служб или утилит, предоставляющих доступ через веб-интерфейс в локальной сети или через Интернет.
NSSM (Non-Sucking Service Manager) позволяет осуществить это быстро, легко и безопасно, при условии, что вы уверены в безопасности процессов, которые вы запускаете в качестве служб.