如何 停止node进程?
发布于 2年前 作者 zhuwenlong 3603 次浏览

我用的screen 运行了node app.js 监听3000端口 然后把终端关了,但是此时app.js还在运行 127.0.0.1:3000还能访问 但是我想把app.js重新运行一下,如何操作? 直接再打开终端运行 node app.js 会报错。。。。。

如何查看和结束node后台运行进程?! 求助!!

11 回复

linux 下 lsof -i 3000 查找进程ID 难后 kill -9 进程ID

囧 杀不完了。。。 杀了这个进程 node又会自动以其他id继续运行 127.0.0.1:3000还能继续访问。。。 node 自身没有方法可以查看自己运行了哪些进程么?

shutekiMacBook-Pro:~ Mofei$ **lsof -i :3000**

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Google 185 Mofei 70u IPv4 0x6295535ed3e455cb 0t0 TCP localhost:49951->localhost:hbci (ESTABLISHED) node 2386 Mofei 8u IPv4 0x6295535ee3667b73 0t0 TCP *:hbci (LISTEN) node 2386 Mofei 9u IPv4 0x6295535ed0c0875b 0t0 TCP localhost:hbci->localhost:49951 (ESTABLISHED)

shutekiMacBook-Pro:~ Mofei$ kill -9 2386 shutekiMacBook-Pro:~ Mofei$ lsof -i :3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Google 185 Mofei 70u IPv4 0x6295535ed3e455cb 0t0 TCP localhost:49951->localhost:hbci (CLOSE_WAIT) node 2391 Mofei 8u IPv4 0x6295535ed3e479e3 0t0 TCP *:hbci (LISTEN)

你进程会自动判断是否被关闭,然后再重启?

嗯 看起来是这样的。。。 我kill之后 再lsof -i :3000 还是能看到node的进程。

无限杀。。。

而且之前运行的app.js貌似 一点影响都没有受到。。仍然可以继续访问 127.0.0.1:3000

shutekiMacBook-Pro:~ Mofei$ lsof -i :3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 2418 Mofei 8u IPv4 0x6295535ee366b5cb 0t0 TCP *:hbci (LISTEN) shutekiMacBook-Pro:~ Mofei$ kill -9 2418 shutekiMacBook-Pro:~ Mofei$ lsof -i :3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 2433 Mofei 8u IPv4 0x6295535ed0c08023 0t0 TCP *:hbci (LISTEN) shutekiMacBook-Pro:~ Mofei$ kill -9 2433 shutekiMacBook-Pro:~ Mofei$ lsof -i :3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 2436 Mofei 8u IPv4 0x6295535ed5b33853 0t0 TCP *:hbci (LISTEN)

google 后搞定

可以kill node

pkill node

或者

killall node

如果要杀单独的话就是上面仁兄给的方法 只不过后面不是 kill -9 而是 kill -2 进程id

我的办法:

ps -ef | grep node

其实 Google 真的是很好的老师, 关键字:“screen”

screen -ls 显示所有的 screen 会话

[root@tivf06 ~]# screen -ls
There is a screen on:
        16582.pts-1.tivf06      (Detached)
1 Socket in /tmp/screens/S-root.

重新连接

screen -r 16582

然后就是正常的 linux 命令了。

http://www.ibm.com/developerworks/cn/linux/l-cn-screen/

谢了~ 实际上不是screen的原因 而是因为我吧shell关了,然后node还在运行,再打开shell没法控制之前运行的node了。 不过还是谢了

嗯 同样有效 谢了~

kill -9 为什么不行呢。-9是强制杀死的意思吗、

@zhs077 这个kill我还真的不熟悉 不过尝试过了 -2可以 -9虽然杀了 但是node会自己重新开另外一个进程…

回到顶部