На виртуальной машине Ubuntu (14.04) у меня есть простой сервер узлов, который я хочу запустить при запуске. Следующий скрипт работает при вызове так же, как ./noderoot start, но не запущен при запуске. Скрипт
#!/bin/sh
### BEGIN INIT INFO
# Provides: noderoot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: bootin and rootin
# Description: Start root server on boot
### END INIT INFO
export PATH=$PATH:/usr/bin
export NODE_PATH=$NODE_PATH:/home/azureuser/npm/bin
case "$1" in
start)
forever --sourceDir=/var/www/root -p /var/www/logs app.js
;;
stop)
forever stop --sourceDir=/var/www/root app.js
;;
*)
echo "Usage: /etc/init.d/noderoot {start|stop}"
exit 1
;;
esac
exit 0
Этот сценарий живет внутри /etc/init.d с 755 для разрешений. Я попытался запустить update-rc.d со следующими результатами:
root@linux-dev:~# update-rc.d noderoot defaults 80
Adding system startup for /etc/init.d/noderoot ...
/etc/rc0.d/K80noderoot -> ../init.d/noderoot
/etc/rc1.d/K80noderoot -> ../init.d/noderoot
/etc/rc6.d/K80noderoot -> ../init.d/noderoot
/etc/rc2.d/S80noderoot -> ../init.d/noderoot
/etc/rc3.d/S80noderoot -> ../init.d/noderoot
/etc/rc4.d/S80noderoot -> ../init.d/noderoot
/etc/rc5.d/S80noderoot -> ../init.d/noderoot
root@linux-dev:~# update-rc.d noderoot enable
update-rc.d: warning: start runlevel arguments (none) do not match noderoot Default-Start values (2 3 4 5)
update-rc.d: warning: stop runlevel arguments (none) do not match noderoot Default-Stop values (0 1 6)
Enabling system startup links for /etc/init.d/noderoot ...
Removing any system startup links for /etc/init.d/noderoot ...
/etc/rc0.d/K80noderoot
/etc/rc1.d/K80noderoot
/etc/rc2.d/S80noderoot
/etc/rc3.d/S80noderoot
/etc/rc4.d/S80noderoot
/etc/rc5.d/S80noderoot
/etc/rc6.d/K80noderoot
Adding system startup for /etc/init.d/noderoot ...
/etc/rc0.d/K80noderoot -> ../init.d/noderoot
/etc/rc1.d/K80noderoot -> ../init.d/noderoot
/etc/rc6.d/K80noderoot -> ../init.d/noderoot
/etc/rc2.d/S80noderoot -> ../init.d/noderoot
/etc/rc3.d/S80noderoot -> ../init.d/noderoot
/etc/rc4.d/S80noderoot -> ../init.d/noderoot
/etc/rc5.d/S80noderoot -> ../init.d/noderoot
Насколько я могу судить, это успешно завершено. Я могу запустить службу, запустив sudo service noderoot start. Однако мой исполняемый файл не запускается, когда перезагружается компьютер. Есть ли способ устранить, что происходит? Любой конкретный файл журнала, который может пролить свет на то, как это исправить?