我在我的ec2 linux实例上通过屏幕运行我的app.js(节点js应用程序)。 我正在尝试配置我的monitrc文件,我需要app pidfile。 它不在: / var / run中 (并且没有/ var / www)
如果有人知道pidfile在哪里或者我怎么能找到它,我真的很感激..
谢谢!
答案 0 :(得分:5)
在您的应用中,您可以使用process.pid获取当前的pid号码
var fs = require('fs');
fs.writeFile("/tmp/pidfile", process.pid);
你在tmp中获得了一个pid文件
答案 1 :(得分:3)
似乎没有创建pid文件所以我使用forever-monitor以便在出现错误时重新启动我的app.js脚本。 看起来它正在工作。 你需要做的是永远的npm安装 并编写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了。 我仍然不明白为什么我应该另外使用upstart(就像所有相关建议的帖子)无论如何当我试图运行upstart时它不起作用