更新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
任何人都可以查看我的新手配置或提供其他工作副本吗?
答案 0 :(得分:0)
您是否正在将pid写入文件,以便您可以使用它将SIGUSR2
发送到进程以触发logrotate重新打开日志?
假设您正在使用Upstart 1.4+(Ubuntu 12.04或更高版本),那么最好让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
" free"的日志轮换很好,但这种方法的最大好处是Upstart可以记录slc run
报告的错误,即使它们在尝试设置内部日志记录时发生崩溃,这也使调试变得更加容易。
除了对您的实际应用程序意味着什么之外,NODE_ENV
对slc run
的唯一影响是将群集工作程序的默认数量设置为检测到的CPU核心数,从字面上转换为{ {1}}。
我发现的另一个问题是节点/ npm路径前缀不在Upstart使用的$ PATH中,所以我通常将可执行文件的完整路径放在我的Upstart作业中。
您还可以尝试使用strong-service-install,这是--cluster=CPUs
用来安装strong-pm as an OS service的模块:
slc pm-install
请注意$ npm install -g strong-service-install
$ sudo sl-svc-install --name app --user ubuntu --cwd /home/ubuntu/app -- slc run --cluster=CPUs .
之前--
周围的空格