J'ai trouvé qu'il était plus facile de créer un script init pour delayed job. Il est disponible ici: http://gist.github.com/408929 ou ci-dessous:
#! /bin/sh
set\_path="cd /home/rails/evatool\_staging/current"
case "$1" in
start)
echo -n "Démarrage de delayed\_job: "
su - rails -c "$set\_path; RAILS\_ENV=staging script/delayed\_job start" >> /var/log/delayed\_job.log 2>&1
echo "fait."
;;
stop)
echo -n "Arrêt de sphinx: "
su - rails -c "$set\_path; RAILS\_ENV=staging script/delayed\_job stop" >> /var/log/delayed\_job.log 2>&1
echo "fait."
;;
\*)
N=/etc/init.d/delayed\_job\_staging
echo "Utilisation: $N {start|stop}" >&2
exit 1
;;
esac
exit 0
Ensuite, assurez-vous que monit est configuré pour démarrer / redémarrer l'application dans votre fichier monitrc:
check process delayed\_job with pidfile "/path\_to\_my\_rails\_app/shared/pids/delayed\_job.pid"
start program = "/etc/init.d/delayed\_job start"
stop program = "/etc/init.d/delayed\_job stop"
et ça fonctionne très bien!