我通过我的 ec2 linux 实例上的屏幕运行我的 app.js(节点 js 应用程序)。我正在尝试配置我的 monitrc 文件,我需要应用程序 pidfile。它不在:/var/run(并且没有 /var/www)
如果有人知道 pidfile 在哪里或我如何找到它,我将不胜感激。
谢谢!
我通过我的 ec2 linux 实例上的屏幕运行我的 app.js(节点 js 应用程序)。我正在尝试配置我的 monitrc 文件,我需要应用程序 pidfile。它不在:/var/run(并且没有 /var/www)
如果有人知道 pidfile 在哪里或我如何找到它,我将不胜感激。
谢谢!
在您的应用程序中,您可以使用 process.pid 获取当前的 pid 号
var fs = require('fs');
fs.writeFile("/tmp/pidfile", process.pid);
你在 tmp 中得到一个 pidfile
似乎没有创建 pid 文件,所以我使用了 forever-monitor 以便在出现错误时重新启动我的 app.js 脚本。看起来它正在工作。你需要做的是 npm install forever 并编写 server.js :
var forever = require('forever'),
child = new(forever.Monitor)('app.js', {
'silent': false,
'pidFile': '/var/run/app.pid',
'watch': false,
'options': ['8383'], // Additional arguments to pass to the script,
'sourceDir': '.', // Directory that the source script is in
'watchDirectory': '.', // Top-level directory to watch from.
'watchIgnoreDotFiles': true, // whether to ignore dot files
'watchIgnorePatterns': [], // array of glob patterns to ignore, merged with contents of watchDirectory + '/.foreverignore' file
'logFile': 'logs/forever.log', // Path to log output from forever process (when daemonized)
'outFile': 'logs/forever.out', // Path to log output from child stdout
'errFile': 'logs/forever.err'
});
child.start();
forever.startServer(child);
然后使用 - node server.js 运行它(我从 ~/nodejs 目录运行它) 应该在 /var/run 中的 pid 文件仍然不存在,很奇怪,但我不再需要 monit 了。我仍然不明白为什么我应该另外使用暴发户(就像所有建议的相关帖子一样)当我尝试运行暴发户时它不起作用