Почему службы, настроенные с помощью NSSM, выводят сообщения об ошибках на стандартный вывод

Недавно я настроил две отдельные службы с помощью NSSM. Для обоих stdout и stderr выводятся в файл stdout, и, таким образом, файл stderr всегда пуст, даже если есть сообщения об ошибках.

Сами сервисы работают как положено.
Они были изначально настроены через CLI со следующими командами:

nssm install servicename "C:\service\path\file.exe"
nssm set servicename AppDirectory "C:\service\path"

nssm set servicename AppStdout "C:\service\logs\stdout.log"
nssm set servicename AppStderr "C:\service\logs\stderr.log"

nssm set servicename AppStdoutCreationDisposition 4
nssm set servicename AppStderrCreationDisposition 4

nssm set servicename AppRotateFiles 1
nssm set servicename AppRotateOnline 1
nssm set servicename AppRotateSeconds 0
nssm set servicename AppRotateBytes 50000

nssm set servicename Start SERVICE_AUTO_START
nssm start servicename

Открытие графического интерфейса NSSM показывает, что все настроено так, как ожидается.

Кажется, это какая-то ошибка в NSSM. Есть ли решение для этого? Или я что-то упустил?

0 ответов

Возможно, это не решение вашей проблемы, но в моем случае проблема возникла из-за того, что служба регистрировалась только в stdout, а не разделяла выходной поток на stdout и stderr. Может стоит проверить это.

Для меня NSSM теперь корректно регистрируется в stdout и stderr.

Другие вопросы по тегам