不能得到新手脚本node.js程序启动时启动

我为应该在启动时运行的node.js程序做了一个相当简单的启动脚本:

start on startup stop on shutdown script exec sudo -u max WEBSITES_DIR=/home/max/websites/ /usr/local/bin/node /home/max/websites/server.js 2>&1 >> /var/log/node.log end script 

如果我使用:

 sudo start my-program 

它的工作原理,但是当我重新启动机器时,我收到错误消息:

 init: my-program main process (325) terminated with status 2 

任何人有任何想法如何debugging呢?

startup事件是Upstart启动过程中发生的第一个事件。 还有各种各样的事情还没有发生 – 根文件系统仍然是只读的,networking还没有初始化等等。

我怀疑这个工作正在快速退出,因为它的所有依赖(显式或隐式)都没有被初始化。 我会把开始条件改成类似的

 start on filesystem and started networking 

至less你可以写入你的日志文件。

作为一个方面说明,它看起来像你颠倒了你的输出redirect参数 – 你的意思是>> /var/log/node.log 2>&1 。 使用2>&1意味着“取任何当前fd 1,并使fd 2相同的东西”,但是你还没有改变什么stdout。

华邦,

在Ubuntu服务器上启动node.js

more /etc/init/noded.conf

Ubuntu的upstart文件在/etc/init/noded.conf

 description "noded.conf" author "ntbinh" start on runlevel [2345] stop on runlevel [06] respawn script su - ubuntu -c "NODE_ENV=test exec sudo /etc/init.d/noded start" end script 

你已经有/etc/init.d/noded 。 你可以编辑/etc/init/noded.conf ==>启动启动:

  # Ubuntu upstart file at `/etc/init/noded.conf` description "noded.conf" author "ntbinh" respawn start on runlevel [2345] stop on runlevel [06] script su - ubuntu -c "NODE_ENV=test exec sudo /usr/bin/nohup /usr/bin/node /home/ubuntu/server.js" >> /home/ubuntu/log.log end script 

在我的情况下,类似的错误是由试图从我的新贵脚本启动一个脚本,而实际上并不存在。 事实certificate,我忘了提交和推脚本。