Shaunak
Shaunak

Reputation: 18026

How to remove pm2 from startup (on mac)

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

Answers (6)

aitnasser
aitnasser

Reputation: 1256

To remove pm2 from startup on Mac OS :

  • Change the CURRENT_USER by your mac user name.
  • Run th following command:
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

doom
doom

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

Vijay Kumar
Vijay Kumar

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

Lucas Vall
Lucas Vall

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

Parag Bafna
Parag Bafna

Reputation: 22930

Use launchctl unload.

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

Upvotes: 0

Noman Ur Rehman
Noman Ur Rehman

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

Related Questions