Nodejs / Strongloop:工作upstart配置示例

时间:2014-12-24 11:42:07

标签: node.js ubuntu upstart strongloop

更新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

任何人都可以查看我的新手配置或提供其他工作副本吗?

1 个答案:

答案 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_ENVslc 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 . 之前--周围的空格