我使用forever来保持Ghost博客平台和其他一些独立于控制台会话运行的服务。我使用' child_process'在 nodejs 脚本中运行此命令。像这样的模块:
var shell = require('child_process').spawn;
var params = [
'NODE_ENV=production',
'forever',
'--sourceDir', rootDir + '/scripts',
'--pidFile', logDirectory + '/service.pid',
'start',
'-l', "chimp.forever.log",
'-e', logDirectory + "/error.log",
'-o', logDirectory + "/info.log",
'chimpStart.js'
];
var forever = shell('sudo', params);
这似乎应该可行,但它只能工作一次。在第二次尝试时,永久日志文件(在-l
参数中指定)的存在意味着永远拒绝启动。
BTW,我已经通过删除-l forever.log
参数验证了这是导致问题的原因。使用此配置,静态命名的其他日志文件(或服务的PID)没有问题。
除了在尝试重新启动之前手动删除永久日志文件之外,还有其它方法吗?