使节点应用成为服务的正确方法

时间:2013-09-23 19:06:44

标签: ubuntu service upstart

我有一个带有应用程序内容的项目文件夹,要手动启动它,我运行nohup npm start &然后取消proc。

我想找到一种方法来改为service mynodeapp {start|stop|restart|etc}命令。

我也知道Ubuntu(以及一般的Debian)正在弃用SysV init脚本,而是在/etc/init/*.conf中建议使用upstart配置。

我如何用start-stop-daemon写一个upstart配置?

感谢。

2 个答案:

答案 0 :(得分:3)

我会用最适合我的解决方案自己回答。

经过深入挖掘后,我决定承担阅读新贵文档的责任,并在/etc/init/myapp.conf中提出以下内容:

# Node.js app config

description     "Node.js app upstart config"
author          "George K."

# Starting conditions
start on (local-filesystems and net-device-up IFACE=eth0)

# Stopping conditions
stop on shutdown

# If parent or any child exits, respawn
respawn

# The deed
script
    export HOME="/root"
    export WORKER_COUNT=4

    exec /usr/local/bin/node /path/to/app >> /var/log/app.log 2>&1
end script

答案 1 :(得分:1)

路径:/etc/init/myapp.conf 使用此命令使文件可执行

chmod +x myapp.conf

myapp.conf来源:

description "App Server"
author "Author"

start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]

respawn

# if your app use port
env PORT=8080

chdir /home/domain/public_html/chat/
exec node index.js