Назад | Перейти на главную страницу

Невозможно запустить исполняемый файл golang как службу Windows

Я хочу запустить службу Windows, написанную на golang, на моей сборке сервера Windows 1803. В сценарии golang используется оболочка службы, найденная здесь: https://github.com/kardianos/service

Служба находится по адресу C:\Program Files\Monitoring\monitor.exe.

После развертывания двоичного файла мониторинга в указанном выше месте я создал службу:

New-Service -Name "winmon" -BinaryPathName 'C:\Program Files\Monitoring\monitor.exe' -DisplayName "Prometheus Docker monitoring" -Description "Prometheus Docker monitoring" -StartupType Automatic

Но запустить службу на сервере все равно не удалось. Я указал LocalSystem как пользователь LogOn, а также пользовательский пользователь CI, который является членом администраторов группы. Для LocalSystem Менеджер службы ответит The operation on winmon failed with exit code: 1067., который описывается как Process terminates unexpectedly. С помощью специального пользователя CI я получил Error Code returned: 15, который описывается как недопустимый диск.

Тестирование приведенных выше инструкций на моем локальном компьютере с Powershell, запущенным от имени администратора, отлично работает. Даже если я переключу пользователя LogOn на LocalSystem, все идет гладко.

Как я могу решить проблемы на моем сервере Windows?