首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJs -无法终止进程

问NodeJs -无法终止进程
EN

Stack Overflow用户
提问于 2017-11-24 00:21:26
回答 3查看 6K关注 0票数 1

我正在做一个使用PM2进行生产的nodeJs项目。我命令启动一个PM2进程来启动我的nodeJs服务器。

我现在面临着一个奇怪的行为:当我通过pm2 stop all停止PM2进程时,我注意到我的web应用程序仍在运行。

在检查我的端口之后,通过

lsof -i:3000

我得到了:

代码语言:javascript
复制
COMMAND    PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
node\x20/ 8239 user1   11u  IPv6 183534091      0t0  TCP *:3002 (LISTEN)
node\x20/ 8239 user1   18u  IPv6 183535847      0t0  TCP server.isymfony.net:3002->server.isymfony.net:51032 (ESTABLISHED)
node\x20/ 8239 user1   20u  IPv6 183526338      0t0  TCP server.isymfony.net:3002->server.isymfony.net:51036 (ESTABLISHED)

正如您所看到的,我发现3个进程正在运行相同的PID,当我使用以下命令终止它时

代码语言:javascript
复制
kill -9 PROCESS_ID

然后再检查一遍我发现它并没有被杀死。

这意味着当我通过PM2重新启动我的服务器时,它会得到一个错误,因为端口3000正在使用中。

有没有关于如何杀死它或者为什么我会有这种行为的建议?

EN

回答 3

Stack Overflow用户

发布于 2018-01-07 06:11:24

尝试切换到根目录,然后终止并重新启动pm2进程:

sudo -i -u root

pm2 kill

pm2 start [my server file]

如果您已将pm2设置为以根用户权限自动运行,则在没有根用户访问权限的情况下将无法终止或替换该进程。您还可以使用sudo命令终止进程,而不是切换到root。

票数 6
EN

Stack Overflow用户

发布于 2018-08-01 18:27:13

使用ps aux | grep God列出进程并终止所有进程ID

票数 0
EN

Stack Overflow用户

发布于 2020-11-07 20:48:20

您可能正在运行多个pm2进程。

请与ps ax | grep pm2核对,用kill <PID>手动将其全部删除,然后尝试重新开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47459788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档