Node.js Nodejs/Strongloop:正在工作的upstart配置示例

Node.js Nodejs/Strongloop:正在工作的upstart配置示例,node.js,ubuntu,upstart,strongloop,Node.js,Ubuntu,Upstart,Strongloop,将strongloop更新到v2.10后,slc将停止写入日志。 此外,我无法使应用程序以生产模式启动 /etc/init/app.conf 有人可以检查我的upstart配置或提供另一个工作副本吗?您是否正在将pid写入一个文件,以便可以使用它将SIGUSR2发送到进程以触发从logrotate重新打开日志 假设您使用的是Upstart 1.4+(Ubuntu12.04或更新版本),那么最好让slc运行其标准输出,并让Upstart负责将其写入文件,以便为您完成日志轮换: #!upstart

将strongloop更新到v2.10后,slc将停止写入日志。 此外,我无法使应用程序以
生产模式启动

/etc/init/app.conf


有人可以检查我的upstart配置或提供另一个工作副本吗?

您是否正在将pid写入一个文件,以便可以使用它将
SIGUSR2
发送到进程以触发从logrotate重新打开日志

假设您使用的是Upstart 1.4+(Ubuntu12.04或更新版本),那么最好让
slc运行其标准输出,并让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运行时报告的错误,即使这些错误是在尝试设置其内部日志记录时发生的,这使得调试变得更加容易

除了对您的实际应用程序意味着什么之外,
NODE_ENV
slc run
的唯一影响是将默认的群集工作进程数设置为检测到的CPU内核数,这实际上转化为
--cluster=CPU

我发现的另一个问题是节点/npm路径前缀不在Upstart使用的$path中,因此我通常将可执行文件的完整路径放在Upstart作业中

服务安装程序 您还可以尝试使用strong service install,这是slc pm install使用的一个模块,用于安装:


注意
--
slc运行之前
周围的空格

在升级到之前,此新启动作业是否正常工作strongloop@2.10.0?是的,它与以前的2.9.x版本配合良好。我将尝试还原strongloop并再次测试它。感谢您的回复!是的,我正在将pid写入/var/run/app.pid。几天后,我将检查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
$ npm install -g strong-service-install
$ sudo sl-svc-install --name app --user ubuntu --cwd /home/ubuntu/app -- slc run --cluster=CPUs .