1

我正在使用 expressJS 并已设置服务器并使用永久选项

我正在尝试终止我开始使用的进程

forever start app.js

我正在使用端口7006

我用过::

  • fuser -k 7006/tcp
  • netstat -plten |grep 7006.....然后我用kill -9 7392

我也用sudo ssh myip fuser -k 7006/tcp 我得到回复作为公钥

我仍然无法终止在特定端口(7006)上运行的进程

4

2 回答 2

1

使用 Forever 之类的服务的目的是在任何情况下都重新启动应用程序。即使您终止在 7006 上运行的进程,它也会自动在同一进程上再次启动应用程序。

您必须杀死永远的进程,而不是在 7006 上运行的进程。

ps -ef | grep forever 

你会得到下面的输出..

harry@joker:~/git/mean|master ⇒  ps -ef |grep forever
  501  4259     1   0 12:57AM ??         0:00.27 /usr/local/bin/node /usr/local/lib/node_modules/forever/bin/monitor server.js
  501  4327  3327   0 12:58AM ttys000    0:00.00 grep forever
harry@joker:~/git/mean|master ⇒

用 pid 4259 杀死进程

要清除所有内容,请参阅以下输出..

harry@joker:~/git/mean|master ⇒  ps -ef | grep 4259
  501  4259     1   0 12:57AM ??         0:00.27 /usr/local/bin/node /usr/local/lib/node_modules/forever/bin/monitor server.js
  501  4260  4259   0 12:57AM ??         0:00.71 /usr/local/bin/node /Users/harry/git/mean/server.js
  501  4342  3327   0  1:02AM ttys000    0:00.00 grep 4259
harry@joker:~/git/mean|master ⇒

注意 4260 的父进程,它的 4259(这意味着永远分叉另一个进程来运行节点 server.js)

希望这可以帮助!

于 2013-10-02T19:35:01.540 回答
1

尝试:

$ forever stopAll

kill该过程不一定会起作用,因为forever它会继续在您身上产生:)

hth,
亚伦

于 2013-10-02T19:38:26.640 回答