Reputation: 18026
I experimenting with pm2, which is a process manager for node.js applications. I tried their pm2 startup utility which generates and installs a startup script for pm2 when the system restarts.
I tried this on my mac, and it works flawlessly. The pm2 automatically restarts and spawns up all my node scripts.
However now, I am done experimenting and how do I remove this from my startup? I wish pm2 came with a similarly simple utility to uninstall itself from startup.
I am aware that it is using launchd
on mac to restart the process. I noticed that it installed a io.keymetrics.PM2.plist
file under /Users/<username>/Library/LaunchAgents
directory.
Is it as simple as just deleting this file? or is it doing something more intrusive , and needs a more graceful uninstall?
It internally uses the following command to install the startup script
sudo env PATH=$PATH:/usr/local/bin pm2 startup darwin -u shaunak
Upvotes: 10
Views: 18123
Reputation: 1256
To remove pm2 from startup on Mac OS :
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u m --hp /Users/CURRENT_USER
Upvotes: 0
Reputation: 3628
If your want to stop the whole pm2 startup process make :
pm2 unstartup
If you just want to remove one app make :
pm2 stop yourapp //if needed
pm2 delete yourapp
pm2 save
It might be too late for you, but maybe it will be useful for someone else ...
Upvotes: 6
Reputation: 922
pm2 unstartup
works fine on Ubuntu 16.04 which internally uses the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 unstartup systemd
Same should work on Mac as well (but the internal command will look a little different).
Upvotes: 7
Reputation: 69
OK, this has worked for me:
I deleted two files:
/Users/<username>/Library/LaunchAgents/io.keymetrics.PM2.plist
This one registers the command pm2 resurrect
at reboot.
/Users/<username>/.pm2/dump.pm2
This last one I assume is created by pm2 dump
and without this info even if PM2 is being resurrected at reboot there is nothing to resurrect?
Anybody found a more elegant way to do this?
Upvotes: 1
Reputation: 22930
Use launchctl unload.
launchctl -w unload ~/Library/LaunchAgents/io.keymetrics.PM2.plist
Upvotes: 0
Reputation: 6957
First, get a list of all running agents using:
launchctl list | more
Or, if pm2 agent goes by the same name:
launchctl list | grep pm2
Then once you have the name of the pm2 agent that is part of launchd, execute:
sudo launchctl remove <pm2-agent-name>
And that's it. If you want to include an agent in the future again, you can do it by:
sudo launchctl load <agent-name>
Upvotes: 2