Теперь работает. Спасибо всем за идеи!
Рецепт состоял из двух сценариев:
winservice.py
winservice_test.py
В моей предыдущей попытке я выделил несколько строк, которые мне показались полезными. Я мог пропустить некоторые из них, поэтому это не сработало.
Я оставил winservice.py
как есть . Для бизнес-конца моего сценария я поместил его в структуру цикла в winservice_test.py
.
После написания кода я пошел в командную строку, просмотрел, где хранились два скрипта, затем установил службу с
python winservice_test.py
Мой сервис теперь доступен через services.msc
. По умолчанию он работает как Локальная системная учетная запись , что создает проблемы при выходе из системы. Служба все еще будет работать, но остановится, потому что у учетной записи нет прав на запись в папку журнала.
Я изменил Свойства , чтобы он работал с моей учетной записью пользователя (у которой есть доступ на запись в папку журнала). Мой сервис теперь выживает при выходе из системы, перестает работать только после завершения работы, а также запускается сам, как только Windows загружается, даже если никто не входит в систему.