Сценарий, который запускается с начальной загрузки и авторестарта при отказе

Я пытаюсь записать сценарий автоматического запуска, который запускается на начальной загрузке и перезапускает, если она отказывает. Запуск на начальной загрузке является выполнимым путем простого добавления сценария к

/etc/rc.local

Файл, однако моей проблемой является автоматический перезапуск. Я думал об экспорте Переменной $$ в файл внешнего текста прежде, чем запустить фактический сценарий и использовать это с другим сценарием, чтобы проверить, работает ли тот pid все еще или нет. Мой вопрос состоит теперь в том, как проверить, работает ли определенный PID все еще и также если существует более надежный способ сделать это.

2
задан 22 May 2017 в 21:30

1 ответ

То, что Ваш сценарий должен выполнить таким способом, systemd сервис.

Примером был бы тот ниже:

[Unit]
Description=My Script


[Service]
Type=forking    
ExecStart=/path/to/script
Restart=on-failure

[Install]
WantedBy=multi-user.target

Это может быть сделано несколькими способами:

  1. Поместите свой сценарий в другое местоположение и получите доступ к нему от Вашего systemd сервисные файлы.

  2. Поместите код непосредственно в systemd сервисный файл.

Я полагаю, что первая опция идеальна в Вашей ситуации. Теперь когда-то сделанный включают при начальной загрузке с нормальным systemctl команды, такие как:

sudo systemctl enable myscript.service
sudo systemctl status myscript.service
sudo systemctl stop myscript.service
sudo systemctl start myscript.service

Источники:

https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files

https://www.freedesktop.org/software/systemd/man/systemd.unit.html

1
ответ дан 2 December 2019 в 04:48

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

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