繁体   English   中英

Node.js / Strongloop:工作新贵配置示例

[英]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_ENVslc 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM