Script upstart simple pour nodejs + forever sur Ubuntu

J'utilise Ubuntu Sever 12.04. J'ai une application nodejs que je souhaite exécuter de la sorte:

NODE_ENV=production PORT=3001 APP_PATH=/var/www/myapp forever -a -l /var/www/myapp/forever.log -o /var/www/myapp/out.log -e /var/www/myapp/err.log /var/www/myapp/app.js 

Je veux l'exécuter au démarrage du système et faire "toujours stopall" lors de l'arrêt du système. J'ai lu que la manière préférée de le faire est d'utiliser les scripts upstart. C'est ce que j'ai essayé:

 description "Upstart script" start on startup stop on shutdown expect fork env MYAPP_PATH="/var/www/myapp" script NODE_ENV=production PORT=3001 APP_PATH=$MYAPP_PATH exec forever -a -l $MYAPP_PATH/forever.log -o $MYAPP_PATH/out.log -e $MYAPP_PATH/err.log $MYAPP_PATH/app.js end script pre-stop script exec forever stop $MYAPP_PATH/app.js >> $LOG end script 

Il se bloque lorsque je l'exécute, puis il dit que le travail est déjà en cours d'exécution (quand ce n'est pas le cas).

Tout le conseil est conseillé de le faire correctement. Merci!

 description "Upstart script" start on filesystem and started networking 

FYI: n'utilisez pas "start on startup" .

 stop on shutdown expect fork # Let's make sure we always have the right directory chdir /var/www/myapp env MYAPP_PATH="/var/www/myapp" env NODE_ENV=production env PORT=3001 # Is there a reason you didn't do this? env APP_PATH=$MYAPP_PATH script # Shell sortingck to re-direct this script's STDOUT/STDERR exec 2>> forever.log 1>> forever.log # You forgot the 'start' command. Without it, it doesn't fork. exec forever start -a -l forever.log -o out.log -e err.log app.js end script pre-stop script # Shell sortingck to re-direct this script's STDOUT/STDERR exec 2>> forever.log 1>> forever.log exec forever stop app.js end script