无法使用grunt dev杀死节点js进程?

时间:2013-10-08 20:39:37

标签: node.js process cygwin gruntjs kill

我目前正在运行使用GruntJS运行Web应用程序的Web应用程序。我通常输入grunt dev来启动它,我可以通过我的本地主机查看它。当我使用Ctrl + Z退出流程时(我在Windows 7上使用Cygwin),我正常退出,因为当grunt dev运行时Cygwin“挂起”。这是它正常工作时输出的内容:

Running "shell:nodeStart" (shell) task
INFO: Configuration Override: CONFIG.MONGO.URL_CONNECTION : OK
INFO: Running in single node environment
INFO: MongoDB is ready
info: socket.io started

[1]+  Stopped                 grunt dev

但是,当我对代码进行更改然后再次键入grunt dev时,Cygwin不会挂起 - 它只是回到命令行,我不知道为什么。下面是发生了什么的照片:

Running "shell:nodeStart" (shell) task
INFO: Configuration Override: CONFIG.MONGO.URL_CONNECTION : OK
INFO: Running in single node environment
INFO: MongoDB is ready

我注意到info: socket.io started未发生导致我输入ps以查看正在运行的进程,然后我发现我的nodejs进程仍在运行。当我试图杀死它时,它说我的PID没有找到进程。

$ ps
  PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
 4112    2768    4112       1208  pty0    1000 13:28:47 /usr/bin/ps
 5336       1    5336       5336  ?       1000 13:10:29 /usr/bin/mintty
 2768    5336    2768       3400  pty0    1000 13:10:29 /usr/bin/bash
 7688       1    7708       7788  pty0    1000 13:13:54 /cygdrive/c/Program Files/nodejs/node

当我试图杀死它时会发生这种情况:

$ kill -9 7688
-bash: kill: (7688) - No such process

如果有人知道如何终止这个过程,那么我可以重新启动我的webapp而不必经常重启我的电脑,那太好了!谢谢!

编辑:我至少为自己找到了解决方案。我不确定为什么kill不能用于cygwin,但是当我在任务管理器上结束这个过程时,grunt dev会按原样运行。谢谢!

2 个答案:

答案 0 :(得分:1)

没关系,我已经找到了解决方案。我不确定为什么当我试图杀死cygwin上的任务时,它不起作用,但是当我打开任务管理器并手动删除进程时,它运行正常。谢谢!

答案 1 :(得分:0)

尝试使用/bin/kill代替内置kill

/bin/kill -f 7688