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:

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.

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 было намного проще

0
задан 30 June 2018 в 01:14
1 ответ
[Service]
User=myuser
Restart=allways   # << fix that
RestartSec=60s
ExecStart=/bin/bash /home/myuser/start.sh
StartLimitIntervalSec=0

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

3
ответ дан 4 December 2019 в 12:17

Теги

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