how to control nodejs by supervisord

因为购买的vps上装了shadowsocks,同时也运行ghost的博客程序,问题来了。shadowsocks用得是supervisord来保持后台运行,nodejs用的是forever来保持后台运行,突然有一天nodejs掉了,上机器查看才发现是OOM了,vps内存超限直接干掉了forever和nodejs,god,只能修改修改让supervisord来监控nodejs了,过程是无比不顺利啊。先给个配置:

[program:ghost]
command = /export/servers/nodejs01212/bin/node /export/html/ghost/index.js  
directory = /export/html/ghost  
user = ghost  
autostart = true  
autorestart = true  
stdout_logfile = /var/log/supervisor/ghost.log  
stderr_logfile = /var/log/supervisor/ghost_err.log  
environment = NODE_ENV="production",PATH="/export/servers/nodejs01212/bin:$PATH"  

注意上面:environment环境变量如果有多个参数,用逗号隔开即可。

可是实际运行的时候node总是运行在了develop环境,根本参数什么的没有传过去,无语啊。懒得纠结了,直接改/etc/init.d/supervisord 加上NODE_ENV环境变量:

. /etc/rc.d/init.d/functions

export NODE_ENV=production

RETVAL=0  

搞定。

comments powered by Disqus