首页 文章

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

提问于
浏览
5

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

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

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

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

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

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

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

5 回答

  • 0

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

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

    同样也适用于Mac(但内部命令看起来会有所不同) .

  • 0

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

    launchctl list | more

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

    launchctl list | grep pm2

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

    sudo launchctl remove <pm2-agent-name>

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

    sudo launchctl load <agent-name>

  • 1

    使用launchctl卸载 .

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

    好的,这对我有用:

    我删除了两个文件:

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

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

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

  • 0

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

    pm2 unstartup
    

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

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

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

相关问题