我试验了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
答案 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:
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u m --hp /Users/CURRENT_USER