Node.js 如何从启动中移除pm2(在mac上)
我正在试验node.js应用程序的流程管理器。我尝试了他们的实用程序,它在系统重新启动时为pm2生成并安装启动脚本 我在我的mac电脑上试过这个,它工作得完美无缺。pm2会自动重新启动并生成所有我的节点脚本 然而现在,我已经完成了实验,我该如何从我的创业公司中删除它呢?我希望pm2有一个类似的简单实用程序,可以从启动时卸载自己 我知道它正在mac上使用Node.js 如何从启动中移除pm2(在mac上),node.js,launchd,pm2,Node.js,Launchd,Pm2,我正在试验node.js应用程序的流程管理器。我尝试了他们的实用程序,它在系统重新启动时为pm2生成并安装启动脚本 我在我的mac电脑上试过这个,它工作得完美无缺。pm2会自动重新启动并生成所有我的节点脚本 然而现在,我已经完成了实验,我该如何从我的创业公司中删除它呢?我希望pm2有一个类似的简单实用程序,可以从启动时卸载自己 我知道它正在mac上使用launchd重新启动进程。我注意到它在/Users//Library/LaunchAgents目录下安装了一个io.keymetrics.PM2
launchd
重新启动进程。我注意到它在/Users//Library/LaunchAgents
目录下安装了一个io.keymetrics.PM2.plist
文件
这和删除这个文件一样简单吗?或者它正在做一些更具侵入性的事情,并且需要更优雅的卸载
它在内部使用以下命令安装启动脚本
sudo env PATH=$PATH:/usr/local/bin pm2 startup darwin -u shaunak
首先,使用以下命令获取所有正在运行的代理的列表:
launchctl列表|更多
或者,如果pm2代理使用相同的名称:
launchctl列表| grep pm2
然后,在获得作为launchd一部分的pm2代理的名称后,执行:
sudo launchctl remove
就这样。如果您希望在将来再次包含代理,可以通过以下方式完成:
sudo launchctl load
使用launchctl unload
launchctl -w unload ~/Library/LaunchAgents/io.keymetrics.PM2.plist
好的,这对我来说很有效: 我删除了两个文件:
/Users//Library/LaunchAgents/io.keymetrics.PM2.plist
此命令在重新启动时注册命令pm2 resurrect
/Users/.pm2/dump.pm2
最后一个我假设是由pm2 dump创建的,如果没有这个信息,即使pm2在重启时被恢复,也没有什么可以恢复的
有人找到了更优雅的方法吗?
pm2 unstartup
在Ubuntu 16.04上运行良好,Ubuntu 16.04内部使用以下命令:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 unstartup systemd
同样的方法也适用于Mac(但内部命令看起来会有点不同)。如果要停止整个pm2启动过程,请执行以下操作:
pm2 unstartup
如果您只想删除一个应用程序,请执行以下操作:
pm2 stop yourapp //if needed
pm2 delete yourapp
pm2 save
这对你来说可能太晚了,但对其他人来说可能会有用…从Mac OS上的启动中删除pm2:
- 按mac用户名更改当前用户
- 运行以下命令:
感谢您的回答,但是io.keymetrics.PM2.plist没有显示在launchctl列表中。。你认为它会在最后一张照片上出现吗?我在pm2和keymetrics上试过grep,也试过在过滤掉苹果的列表后手动查看。你确定你仔细查看了列表吗?因为它应该在那里…是的,仔细检查:(我使用了问题中链接的pm2文档中描述的“pm2启动”。我更新了问题并添加了它在内部使用的命令。文件存在,但我收到错误信息“launchctl:error unload:io.keymetrics.pm2”…我也尝试了sudo..launchctl-w load~/Library/LaunchAgents/io.keymetrics.pm2.plist,然后再次卸载该文件。
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u m --hp /Users/CURRENT_USER