我试图启动一个nodejs应用程序forever ( forever只是重新启动程序,如果崩溃),但forever不会自动启动引导。 所以我使用暴发户forever初始化。
我已经尝试了数百种方式来达到这个目的(许多尝试和错误尝试),但是对我来说似乎没有什么效果。 所以我的情况是:
sudo start prv 这是我到目前为止的脚本(prv.conf,位于/etc/init/prv.conf ):
author "Renato Gama" description "PRV" start on runlevel [235] stop on shutdown respawn export HOME="/home/ec2-user/prv/app" exec su -c "/usr/bin/forever start -l forever.log -o /home/ec2-user/prv/logs/out.log -e /home/ec2-user/prv/logs/err.log --append /home/ec2-user/prv/app.js" root | logger -t PRV
事实上,从命令行我可以通过键入以下(并按预期工作)启动应用程序:
cd /home/ec2-user/prv sudo su -p (altough I am not using any specific env variable) forever start -l f.log -o out.log -e err.log --append app.js
PS1:我甚至没有在真正的启动testing,因为它甚至不能用sudo start prv
PS2:如果我访问日志,它不会告诉太多(正常退出)。 日志的一部分就在这个要点
PS3:执行sudo start prv我得到了这个
[ec2-user@ip-10-252-146-14 ~]$ sudo start prv prv start/running, process 11477
但是,当我试图检查是否永远运行我的进程,它说:
[ec2-user@ip-10-252-146-14 ~]$ sudo forever list info: No forever processes running
PS4 .:我的应用程序绑定到端口80这就是为什么我需要一个特权用户来运行这个。
编辑:我几乎可以肯定的问题是,我得到端口80 EACCESS错误
如init(5)所示,导出行无效(Upstart语法不是shell)。 你需要指定:
env HOME="..." export HOME
请参见:
也,
最后,
在文件/var/log/upstart/yourjob.log查找作业输出。