如何将Grunt作为守护进程运行?

3
我正在运行一个打包好的Node.js web服务器,可以读取epub文件(Readium-JS),并且使用grunt命令启动。
但是,如果我在我的VPS上运行它,只要我的终端连接断开,服务器就会停止运行。
如何作为守护进程运行此任务?
我已经查看了grunt-forever和grunt-daemon等选项,但是由于Gruntfile使用load-grunt-config编写的方式正在干扰我的思路,我无法分离出服务器代码。

你真的需要用grunt来开始它吗?pm2是最流行的进程管理器,但我不知道它是否适用于grunt。 - loganfsmyth
是的,从命令行调用grunt似乎是必要的。没有一个文件可以运行“node file.js”正确启动服务器,否则我已经用forever拼凑好了。看起来grunt正在汇集配置然后启动它,这似乎只能通过运行grunt来实现。--- 话虽如此,我已经尝试过了,它似乎正在工作。如果您将您的评论添加为答案,我会接受它作为正确答案,谢谢! - Anthony
1个回答

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后,一切都顺利进行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接