如何杀死 pm2 --no-daemon 进程

Posted

技术标签:

【中文标题】如何杀死 pm2 --no-daemon 进程【英文标题】:How to kill the pm2 --no-daemon process 【发布时间】:2017-12-25 12:41:25 【问题描述】:

我使用 pm2 作为 Node.js 的进程管理器。

在很多情况下,我认为我会将它作为守护进程运行,但如果你在本地使用它作为调试,我认为有时你会使用--no-daemon 选项。

使用--no-daemon 选项移动 pm2 时如何结束进程?

【问题讨论】:

【参考方案1】:

你可以试试:

pm2 kill

或使用以下命令查找正在运行的 PM2 进程:

ps aux | grep PM2

然后杀死:

kill -9 [pid]

-9 开关向进程发送 KILL 信号,而不是默认中断(INTSIGINT)信号,等效于 -KILL-SIGKILL。中断是一种侵入性较小的方式,您可以先尝试让进程正常退出,但是,如果它没有响应,kill 信号应该导致立即终止(除非进程是僵尸进程)。

【讨论】:

是的。当然它可以那样杀人。但是,每次都做另一个窗口很麻烦 我知道明白。命令结果为PM2 God Daemon。当您播放pm2 kill 时,问题已解决。非常感谢:) pm2 kill 的反面是什么,我想重新开始【参考方案2】:

您可以查看所有使用 pm2 注册的进程

pm2 list

假设您要停止的进程被命名为 processA,使用以下命令将停止 processA:

pm2 stop processA

如果你想删除进程而不是使用以下命令:

pm2 delete processA

如果您不想杀死特定进程,而是使用以下命令杀死 pm2 本身:

pm2 kill

【讨论】:

【参考方案3】:

正确答案是pm2 kill

$pm2 杀 [PM2] [v] 模块停止 [PM2] 在应用上应用操作 deleteProcessId [all](ids: 0) [PM2] 你好✓ [PM2] [v] 所有应用程序已停止 [PM2] [v] PM2 守护进程已停止

【讨论】:

【参考方案4】:

其他解决方案是运行pm2 delete allpm2 stop all。这不会杀死 pm2 进程本身,但会清理内部 pm2 的进程列表。

【讨论】:

【参考方案5】:

首先列出所有进程:

pm2 list

假设你的进程是开发者

pm2 stop dev

现在,删除进程

pm2 delete dev

在该进程状态变为daemon之后。

如果你想杀死那个守护进程然后运行命令

pm2 kill

【讨论】:

【参考方案6】:

如果它在前台运行,你应该可以用ctl + c 杀死它,就像你可以杀死node server.js 一样。

【讨论】:

我试过了。但是,当我运行 pm2 list 时,状态仍将在线 这应该告诉你 pm2 实际上并没有在前台运行。它已被守护为后台进程。您应该在运行top 时看到它,或者您也可以通过@marekful 上面的建议进行搜索:ps aux | grep PM2 以查看 pm2 进程是否正在运行。无论如何,您有什么理由在本地运行它?

以上是关于如何杀死 pm2 --no-daemon 进程的主要内容,如果未能解决你的问题,请参考以下文章

无法在 nodeJS 中获取 pm2 退出或停止事件

pm2 杀死所有东西,如果不重新启动服务器就无法重新启动

前端应用容器化部署 Docker

通过其子进程分析一个进程并在之后杀死该子进程

如何在同一台服务器起多个pm2进程

如何使用 pm2 部署 express 多进程