Возможно, вы захотите использовать супервизор процесса .
Чтобы упростить процесс и получить переносимое решение, не зависящее, например, от systemd
(только для Linux), вы можете установить, например, immortal , во FreeBSD просто нужно сделать:
pkg install immortal
Затем создайте your-script.yml
примерно так:
cmd: sleep 3
И демонизировать его с помощью:
$ immortal -c test.yml
Для проверки статуса вы можете использовать immortalctl :
$ immortalctl
PID Up Down Name CMD
29993 0.0s test sleep 3
Если вы хотите, чтобы он всегда был активным даже при перезагрузке, просто переместите ваш скрипт (во FreeBSD) на /usr/local/etc/immortal/your-script.yml
, узнайте больше о immortaldir
Вы можете добавить дополнительную опцию для примера:
cmd: iostat 3
log:
file: /tmp/iostat.log
age: 10 # seconds
num: 7 # int
size: 1 # MegaBytes
require_cmd: test -f /tmp/foo
Для дополнительных примеров проверьте: https://immortal.run/post/run.yml/