9

我尝试使用pm2,它是 node.js 应用程序的进程管理器。我尝试了他们的pm2 启动实用程序,该实用程序在系统重新启动时为 pm2 生成并安装启动脚本。

我在我的mac上试过这个,它完美无缺。pm2 会自动重新启动并生成我所有的节点脚本。

但是现在,我已经完成了实验,如何从我的启动中删除它?我希望 pm2 带有一个类似的简单实用程序,可以从启动中自行卸载。

我知道它正在使用launchdmac 来重新启动进程。我注意到它在目录io.keymetrics.PM2.plist下安装了一个文件/Users/<username>/Library/LaunchAgents

只是删除这个文件那么简单吗?还是它在做一些更具侵入性的事情,并且需要更优雅的卸载?

它在内部使用以下命令来安装启动脚本

   sudo env PATH=$PATH:/usr/local/bin pm2 startup darwin -u shaunak
4

6 回答 6

6

pm2 unstartup在内部使用以下命令的 Ubuntu 16.04 上运行良好:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 unstartup systemd

同样也应该在 Mac 上工作(但内部命令看起来会有点不同)。

于 2017-01-26T22:21:45.380 回答
5

如果您想停止整个 pm2 启动过程,请执行以下操作:

pm2 unstartup

如果您只想删除一个应用程序:

pm2 stop yourapp //if needed
pm2 delete yourapp
pm2 save

对你来说可能为时已晚,但也许对其他人有用......

于 2018-01-09T13:18:20.537 回答
2

首先,使用以下命令获取所有正在运行的代理的列表:

launchctl list | more

或者,如果 pm2 代理使用相同的名称:

launchctl list | grep pm2

然后,一旦您获得了作为 launchd 一部分的 pm2 代理的名称,请执行:

sudo launchctl remove <pm2-agent-name>

就是这样。如果您想在将来再次包含代理,您可以通过以下方式进行:

sudo launchctl load <agent-name>

于 2015-02-10T06:27:58.250 回答
0

使用launchctl卸载。

launchctl -w unload ~/Library/LaunchAgents/io.keymetrics.PM2.plist
于 2015-02-15T06:05:37.717 回答
0

好的,这对我有用:

我删除了两个文件:

  • /Users/<username>/Library/LaunchAgents/io.keymetrics.PM2.plist
    这个pm2 resurrect在重新启动时注册命令。

  • /Users/<username>/.pm2/dump.pm2
    我假设的最后一个是由pm2 dump并且没有此信息创建的,即使 PM2 在重新启动时被复活,也没有什么可以复活的?

有人找到更优雅的方法来做到这一点吗?

于 2015-09-18T09:51:40.030 回答
0

在 Mac OS 上从启动中删除 pm2:

  • 通过您的 mac 用户名更改 CURRENT_USER。
  • 运行以下命令:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u m --hp /Users/CURRENT_USER
于 2020-05-15T09:28:33.333 回答