【问题标题】:How can I run grunt as a daemon?如何将 grunt 作为守护进程运行?
【发布时间】:2015-07-12 07:26:11
【问题描述】:

我正在运行一个打包的 nodejs 网络服务器,它允许读取 epub 文件 (Readium-JS),它使用 grunt 命令启动。

但是,如果我在我的 VPS 上运行此程序,我的终端连接一结束,服务器就会死机。

如何将此任务作为守护程序运行?

我查看了诸如 grunt-forever 和 grunt-daemon 之类的选项,但使用 load-grunt-config 编写 Gruntfile 的方式让我心烦意乱,我无法拼凑出如何隔离服务器代码。

【问题讨论】:

  • 你真的需要用 grunt 启动它吗? pm2 是最受欢迎的流程管理器,但我不知道它是否适用于 grunt。
  • 是的,看来从命令行调用 grunt 是必要的。似乎没有一个文件可以运行“node file.js”来正确启动服务器,否则我会永远把它扔在一起。似乎 grunt 正在将配置组合在一起然后启动它,除了运行 grunt 之外似乎没有任何其他调用。 ---也就是说,我已经尝试过了,它似乎正在工作。如果您添加您的评论作为答案,我会接受它是正确的,谢谢!

标签: node.js gruntjs command-line-interface daemon epub


【解决方案1】:

这是我找到的解决方案:

如上所述,使用pm2

但是,当我跑的时候

pm2 start grunt 

我收到一个错误,说 grunt 模块不存在,这很奇怪。

所以我最终编写了一个有效的脚本:

-- start.js--

var pm2 = require('pm2');

pm2.connect(function() {
  pm2.start({
    script    : '/usr/local/bin/grunt',         // Script to be run
    args: '--force',
  }, function(err, apps) {
    pm2.disconnect();
  });
});

从命令行运行 node start.js 后,一切顺利。

【讨论】:

    猜你喜欢
    • 2023-03-02
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多