[英]Nodejs/Strongloop: working upstart config example
在将Strongloop更新至v2.10之后, slc
停止写入日志。 另外,我无法使该应用程序以production
模式启动。
/etc/init/app.conf
#!upstart
description "StrongLoop app"
start on startup
stop on shutdown
env NODE_ENV=production
script
exec slc run /home/ubuntu/app/ \
-l /home/ubuntu/app/app.log \
-p /var/run/app.pid
end script
有人可以检查我的新贵配置或提供其他工作副本吗?
您是否正在将pid写入文件,以便可以使用它将SIGUSR2
发送到进程以触发从logrotate重新打开日志?
假设您使用的是Upstart 1.4+(Ubuntu 12.04或更高版本),那么最好让slc run
日志slc run
到其stdout,然后由Upstart负责将其写入文件,以便为您完成日志轮换:
#!upstart
description "StrongLoop app"
start on startup
stop on shutdown
# assuming this is /etc/init/app.conf,
# stdout+stderr logged to: /var/log/upstart/app.log
console log
env NODE_ENV=production
exec /usr/local/bin/slc run --cluster=CPUs /home/ubuntu/app
“免费”的日志轮换非常好,但是这种方法的最大好处是Upstart可以记录slc run
报告的错误,即使它们在尝试设置其内部日志记录时崩溃也是如此,这使调试变得更加容易。
除了对实际应用程序意味着什么以外, NODE_ENV
对slc run
的唯一影响是将群集工作器的默认数量设置为检测到的CPU内核数量,从字面上转换为--cluster=CPUs
。
我发现的另一个问题是Upstart所使用的$ PATH中没有node / npm路径前缀,因此我通常将可执行文件的完整路径放在Upstart作业中。
您也可以尝试使用strong-service-install,这是slc pm-install
用于将slc pm-install
-pm作为OS服务安装的模块:
$ npm install -g strong-service-install
$ sudo sl-svc-install --name app --user ubuntu --cwd /home/ubuntu/app -- slc run --cluster=CPUs .
注意slc run
前--
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.