Execute o script com rc.local: o script funciona, mas não na inicialização

Eu tenho um script node.js que precisa iniciar na inicialização execute com o usuário www-data. Durante o desenvolvimento, eu sempre iniciava o script com:

su www-data -c 'node /var/www/php-jobs/manager.js

Vi exatamente o que aconteceu, o manager.js agora funciona muito bem. Pesquisando SO, descobri que tinha que colocar isso no meu/etc/rc.local. Além disso, aprendi a apontar a saída para um arquivo de log e a anexar o2>&1 para "redirecionar stderr para stdout" e deve ser um daemon para que o último caractere seja um&.

Finalmente, meu/etc/rc.local se parece com isso

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

su www-data -c 'node /var/www/php-jobs/manager.js >> /var/log/php-jobs.log 2>&1 &'

exit 0

Se eu mesmo executar isso sudo /etc/rc.local): sim, funciona! No entanto, se eu executar uma reinicialização nonode processo está sendo executado, o/var/log/php-jobs.log não existe e, portanto, o manager.js não funciona. O que está acontecendo

questionAnswers(15)

yourAnswerToTheQuestion