Служба пользовательского приложения Python не запускается при загрузке

Я набираю терминал,
journalctl | more, отлично работает для меня, тогда я использую стрелки вверх или вниз.

0
03.12.2020, 22:58
2 ответа

Ваша служба не запускается, потому что шина piпользователя --userне запускается до тех пор, пока piне войдет в систему. Хотя ответ Михала был частично правильным (, вы должны использовать default.targetвместо multi-user.targetв --userрежим ), лучший ответ — поместить ваш сервис на системную шину.

Если вы хотите запустить эту службу даже без piвхода в систему, то поместите ее на системную шину. Это касается:

  • mv ~/.config/systemd/user/argus.service /etc/systemd/system/
  • Добавьте User=piв секцию [Service]в argus.service.

Теперь ваш сценарий имеет все те же разрешения, как если бы он выполнялся пользователем piна пользовательской шине, за исключением того, что он выполняется независимо от статуса входа пользователя -. Единственным недостатком является необходимость запуска sudoпри работе с этим устройством с помощью systemctlили journalctl.

Основное преимущество шины --userзаключается в том, что пользователь может использовать systemctlили journalctlбез sudoдля управления определенными службами. Это также позволяет запускать и останавливать службы на основе входа или выхода пользователя. Поскольку ваша служба должна запускаться без пользовательского ввода и без триггера входа пользователя, системная шина — лучшее место для этого.

1
18.03.2021, 22:45

Если вы пытаетесь запустить службу под пользовательским экземпляром systemd, вы должны использовать default.target, а не multi-user.target. multi-user.targetне используется пользовательским экземпляром systemd.

См.https://www.freedesktop.org/software/systemd/man/systemd.special.html#default.target1

2
18.03.2021, 22:45

Теги

Похожие вопросы