如何从启动中删除pm2(在mac上)

时间:2015-02-10 05:21:05

标签: node.js launchd pm2

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

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

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

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

是否只是删除此文件一样简单?或者它是否正在做一些更具侵入性的东西,需要更优雅的卸载?

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

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

6 个答案:

答案 0 :(得分:3)

pm2 unstartup在Ubuntu 16.04上运行正常,它在内部使用以下命令:

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

同样适用于Mac(但内部命令看起来会略有不同)。

答案 1 :(得分:1)

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

launchctl list | more

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

launchctl list | grep pm2

然后,如果您拥有属于launchd的pm2代理的名称,请执行:

sudo launchctl remove <pm2-agent-name>

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

sudo launchctl load <agent-name>

答案 2 :(得分:0)

使用launchctl unload。

launchctl -w unload ~/Library/LaunchAgents/io.keymetrics.PM2.plist

答案 3 :(得分:0)

好的,这对我有用:

我删除了两个文件:

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

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

有人找到了更优雅的方法吗?

答案 4 :(得分:0)

如果你想停止整个pm2启动过程make:

pm2 unstartup

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

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

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

答案 5 :(得分: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