Сервис Systemd не будет выполняться при загрузке - PullRequest
0 голосов
/ 02 апреля 2020

Я создал свой собственный Сервис с помощью systemd. Предполагается, что сценарий python запускается один раз при загрузке. Он отправляет электронное письмо с IP-адресом и идентификатором Teamviewer, поэтому у меня задержка, в противном случае я получаю сообщение об ошибке, что домен почтового сервера не может быть разрешен. Скрипт должен работать в фоновом режиме из-за 30-секундной задержки. Скрипт находится в /usr/bin/glatv.py и может быть легко переписан, скрипт запускается без проблем. Конструкция работает на Raspberry Pi4 с Raspian Buster 2020-02-13

Сервис находится в / etc / systemd / system / location, выполняется и включен:

[Unit]
Description=My Own Service

[Service]
Type=oneshot
ExecStart=/usr/bin/glatv.py &

[Install]
WantedBy=reboot.target

Но

systemctl start myservice 

работает без проблем

 ● glatvd.service - My Own Service
   Loaded: loaded (/etc/systemd/system/glatvd.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

Apr 02 12:52:31 raspberrypi systemd[1]: Starting My Own Service...
Apr 02 12:53:02 raspberrypi systemd[1]: glatvd.service: Succeeded.
Apr 02 12:53:02 raspberrypi systemd[1]: Started My Own service.

после перезагрузки нет звонка или журнала

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Вместо произвольной 30-секундной задержки добавьте это в свой служебный файл:

After=network-online.target
Wants=network-online.target
0 голосов
/ 02 апреля 2020

Вы должны попытаться запустить эту команду, чтобы разрешить запуск службы после перезапуска

systemctl enable myservice

, а для журнала, я полагаю, вы должны поместить эти параметры в файл конфигурации службы

StandardOutput=/path/to/info/log/info_log.log
StandardError=/path/to/error/log/error_log.log

Все, что я получил эту ссылку: Как перенаправить вывод службы systemd в файл

...