В зависимости от Вашего распределения (Вы не упоминали это), у Вас есть довольно широкая предпочтительная область: chkconfig, rcconf, / и т.д. / (rc.d/) rc.local, symlinking сценарии запуска в init.d\rc.d - но все они требуют полномочия пользователя root.
Я предполагаю, что у Вас нет доступа к sudo. Эти листы Вы со всего одной опцией, добавляя сценарий в crontab, который проверяет, работает ли процесс, и если это не, затем запускают его. Вы также получаете своего рода улучшение доступности (например, если Ваш процесс отказывает, это запущено снова).
Мое взятие на этом:
#!/bin/sh
proc=process_name
`ps aux > /tmp/.$proc; awk '/$proc/{print $2}' /tmp/.$proc > /tmp/.x` #if process is alive then copy its PID in .x
if [ -s /tmp/.x ]; then #-s file True if file exists and has a size greater than zero.
echo k #.x is greater than zero => process is alive, all ok
else
/etc/init.d/daemon start _or_whatever_startup file_ #.x was zero, process dead.
fi
`rm -f /tmp/.$proc && rm -f /tmp/.x`
Я решил, создав фиктивное главное задание (/etc/init/master_job.conf):
description "master_job"
start on filesystem or runlevel [2345]
stop on runlevel [!2345]
respawn
, а остальные начинают и останавливаются на нем (/etc/init/other_job.conf) :
start on starting master_job
stop on stopping master_job