【问题标题】:configure monitrc to monitor node js app process, can't find node app pidfile running with screen ec2 linux配置monitrc来监控node js app进程,找不到使用screen ec2 linux运行的node app pidfile
【发布时间】:2012-10-23 11:40:15
【问题描述】:

我通过我的 ec2 linux 实例上的屏幕运行我的 app.js(节点 js 应用程序)。 我正在尝试配置我的 monitrc 文件,我需要应用程序 pidfile。 它不在: /var/运行 (并且没有 /var/www)

如果有人知道 pidfile 在哪里或如何找到它,我将不胜感激。
谢谢!

【问题讨论】:

    标签: node.js linux pid gnu-screen monit


    【解决方案1】:

    似乎没有创建 pid 文件,所以我使用了 forever-monitor 以便在出现错误时重新启动我的 app.js 脚本。 看起来它正在工作。 你需要做的是永远 npm install 并编写 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(就像所有相关的帖子一样),但它不起作用

    【讨论】:

      【解决方案2】:

      在您的应用中,您可以使用 process.pid 获取当前的 pid 号

      var fs = require('fs');
      fs.writeFile("/tmp/pidfile", process.pid);
      

      你会在 tmp 中得到一个 pidfile

      【讨论】:

      • 也许我不太明白你想要什么,但pidfile只是一个带有pid号的文件。
      • 但是当进程重新启动时 pid 会发生变化。无论如何,这就是 monitrc 配置所需要的。我必须给它 pid 文件路径。
      • 创建 pidfile 没有什么神奇的。许多用于 init 的守护程序脚本(例如在 /etc/init.d 中)具有创建 pid 文件的帮助程序。在他们不在的情况下,您将不得不自己写一个。
      • 谢谢乔,得到一个正确答案的反对票有点奇怪。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多