通过命令行重启我的应用程序的Grunt任务

时间:2014-06-05 20:13:16

标签: bash shell command-line gruntjs sails.js

我正在寻找可以重新启动Sails应用的Grunt任务。目前,我知道如何重新启动Sails应用程序的唯一方法是访问运行该应用程序的终端并输入“Ctrl + C'”。然后' Sails lift'再次启动它。有没有办法让Grunt为我运行这两个命令?

我接近使用它:https://github.com/sindresorhus/grunt-shell,但无法把它带回家。有什么建议吗?

修改: 以下通过命令行成功终止了Sails应用程序,但是当我尝试启动Sails应用程序时,Grunt任务(下面)仍会导致错误: pkill -2 node /usr/local/bin/sailspkill -SIGINT node /usr/local/bin/sails

我的Grunt任务中的代码是:

module.exports = function(grunt) {

    grunt.config.set('shell', {
        multiple: {
            command: [
                'pkill -SIGINT node /usr/local/bin/sails',
                'sails lift'
            ].join('&&')
        }
    });

    grunt.loadNpmTasks('grunt-shell');
};

(我正在使用此Grunt任务:https://github.com/sindresorhus/grunt-shell

当我尝试启动应用程序时(" Sails lift")我得到一个"命令失败"错误。我认为这与我尝试使用应用程序本身杀死应用程序这一事实有关。或者其他什么。

3 个答案:

答案 0 :(得分:2)

pkill可用于基于名称而不是PID

来终止进程
pkill -SIGINT {name of process} && Sails lift

这应该做你需要的。您可以通过top或ps aux |轻松找到该过程的名称grep" sail"

我确定这个过程只是风帆,所以很可能是:

pkill -SIGINT sails && Sails lift

答案 1 :(得分:0)

Ctrl + C发送SIGINT(请参阅signal(7)),因此如果您可以使用shell命令,请使用kill命令,如下所示:

kill -SIGINT {pid-of-your-Sails-app} && Sails lift

答案 2 :(得分:0)

我一直在使用nodemon来完成这项任务,效果很好:

https://github.com/remy/nodemon