2

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

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

如果有人对如何终止此进程有任何想法,以便我可以重新启动我的 web 应用程序而不必不断地重新启动我的计算机,那就太好了!谢谢!

编辑:我至少为自己找到了解决方案。我不确定为什么 kill 在 cygwin 上不起作用,但是当我在任务管理器上结束进程时,grunt dev 可以正常工作。谢谢!

4

2 回答 2

1

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

于 2013-10-08T23:01:02.683 回答
0

尝试使用/bin/kill而不是内置的kill.

/bin/kill -f 7688
于 2013-10-08T20:56:54.127 回答