Демонизация скриптов и приложений

Бывает необходимо запускать некие скрипты или приложения, которые будут крутиться все время. Раньше запускалось и висело в jenkins'e, но при отмене задачи скрипты продолжали работать. И главное при падении оно должно перезапускаться, я надумал 2 решения. Первое - это самописный костыль, который проверяет состояние и если не запущен запускает, висящий в cron'e. Второе - использование supervisord, который позволяет демонизировать все что угодно. Из ништяков у него есть веб-интерфейс для управления запущеными «демонами», но я его не щупал так как у меня для этих целей есть jenkins.
В первом случае необходим скрипт для запуска и остановки нужного приложения, можно взять тут и ко всему задание в jenkins'e для запуска и остановки. Что касается перезапуска в случае падения, то есть такой костыль:
/usr/src/ref.sh
#!/bin/sh
name="script"
path="/etc/init.d/"

pr1=`pgrep -f "argument"`
if [ "$pr1" ]
 then
    echo "Ok";
 else
    echo "start... \n";
    echo `$path$name start`;
fi
Скрипт, который я запускал, запускается с передачей аргументов типа:
php /root/script.php argument
Если нужен мониторинг на наличие запущеного процесса можно в zabbix-agent добавить:
/etc/zabbix/zabbix_agentd.d/userparameter_process.conf
UserParameter=proc.status[*],pgrep -f $1 | wc -l
Для проверки с сервера выполнить команду, предварительно перезапустив агент
zabbix_get -s example.com -k proc.status[argument]
C supervisor все проще, и он есть в репе или можно установить используя pip. Я поставил с реп и создал конфиг файл нужного мне скрипта
/etc/supervisor/conf.d/script.conf
[program:script]
command=php /root/script.php argument
stdout_logfile=/var/log/supervisor/script.log
stderr_logfile=/var/log/supervisor/script-error.log
redirect_stderr=true
autostart=true
autorestart=true
startsecs=5
/etc/init.d/supervisor start запускает все что у него есть.
Для управления запущеными сервисами есть supervisorctl.
supervisorctl start script
supervisorctl stop script
supervisorctl status
Еще есть restart, tail и прочее, подробней в доках.