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

systemd не может перезапустить служебный файл

Я написал сценарий bash, который хочу запускать каждые 60 секунд (не волнуйтесь, я пробовал сценарий, он отлично работает).

Теперь я хотел реализовать это в systemd .service файл, но пока не перезапускается. Сценарий выполняется один time и заканчивается с кодом возврата 0, а затем служба останавливается (навсегда). Итак, он просто запускает, а потом заканчивается.

Он не перезапускается. Я пробовал много разных вещей с RemainAfterExit, StartLimitIntervalSec или StartLimitBurst, но ничего не получилось.

Вот мой .service-файл:

[Unit]
Description=ExampleScript

[Service]
User=myuser
Restart=allways
RestartSec=60s
ExecStart=/bin/bash /home/myuser/start.sh
StartLimitIntervalSec=0

[Install]
WantedBy=multi-user.target

Может быть, кто-нибудь из вас знает о System.d и может мне помочь? Большое спасибо!



PS:

service-status при запуске скрипта:

* examplescript.service - ExampleScript
   Loaded: loaded (/usr/lib/systemd/system/examplescript.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-06-29 23:58:04 CEST; 1s ago
 Main PID: 31860 (bash)
   Memory: 15.6M
   CGroup: /system.slice/examplescript.service
           |-31860 /bin/bash /home/myuser/start.sh
           |-31862 /bin/bash /home/myuser/script/subscript.sh
           `-31871 python /home/myuser/script/subscript.py

Jun 29 23:58:04 mysystem systemd[1]: Started ExampleScript.

статус службы после завершения скрипта с помощью rc0:

* examplescript.service - ExampleScript
   Loaded: loaded (/usr/lib/systemd/system/examplescript.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Fri 2018-06-29 23:58:48 CEST; 2min 42s ago
  Process: 31860 ExecStart=/bin/bash /home/myuser/start.sh (code=exited, status=0/SUCCESS)
 Main PID: 31860 (code=exited, status=0/SUCCESS)

Jun 29 23:58:04 mysystem  systemd[1]: Started ExampleScript.

... systemd чертовски сложен, работа с cron была намного проще

[Service]
User=myuser
Restart=allways   # << fix that
RestartSec=60s
ExecStart=/bin/bash /home/myuser/start.sh
StartLimitIntervalSec=0

Вы неправильно написали "always" в "Restart =".