我正在寻找可以重新启动Sails应用的Grunt任务。目前,我知道如何重新启动Sails应用程序的唯一方法是访问运行该应用程序的终端并输入“Ctrl + C'”。然后' Sails lift'再次启动它。有没有办法让Grunt为我运行这两个命令?
我接近使用它:https://github.com/sindresorhus/grunt-shell,但无法把它带回家。有什么建议吗?
修改:
以下通过命令行成功终止了Sails应用程序,但是当我尝试启动Sails应用程序时,Grunt任务(下面)仍会导致错误:
pkill -2 node /usr/local/bin/sails
和pkill -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")我得到一个"命令失败"错误。我认为这与我尝试使用应用程序本身杀死应用程序这一事实有关。或者其他什么。
答案 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来完成这项任务,效果很好: