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

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

Теперь я хотел реализовать это в systemd .service файл, но пока он не перезапускается. Сценарий выполняется один раз и заканчивается кодом возврата 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:

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

* 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.

service-status после завершения скрипта с 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-job был намного проще

1 ответ

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

Вы ошиблись "всегда" на "Restart=".

Другие вопросы по тегам