Выполнить сценарий с помощью rc.local: сценарий работает, но не при загрузке

У меня есть сценарий node.js, который нужно запускать при загрузке и работают под пользователем www-data. Во время разработки я всегда начинал скрипт с:

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

Я точно видел, что произошло, manager.js теперь отлично работает. При поиске SO я обнаружил, что мне нужно поместить это в свой /etc/rc.local .Кроме того, я научился указывать вывод в файл журнала и добавлять 2> & 1 к «перенаправлению stderr на stdout», и это должен быть демон, поэтому последний символ будет & ].

Наконец, мой /etc/rc.local выглядит так:

#!/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

Если я запустил это сам ( sudo /etc/rc.local): да, это работает ! Однако, если я выполняю перезагрузку, процесс node не запущен, /var/log/php-jobs.log не существует, и, следовательно, manager.js не работает. Что происходит?

38
задан Jurian Sluiman 16 October 2011 в 09:10
поделиться