2015-02-10 2 views
4

Я экспериментирую с pm2, который является менеджером процессов для приложений node.js. Я попробовал свою утилиту pm2 startup, которая генерирует и устанавливает сценарий запуска для pm2 при перезапуске системы.Как удалить pm2 из startup (на mac)

Я пробовал это на своем mac, и он работает безупречно. Pm2 автоматически перезапускает и запускает все мои скрипты узлов.

Однако теперь я экспериментировал и как удалить это из моего запуска? Я желаю, чтобы pm2 пришел с аналогичной простой утилитой для удаления из стартапа.

Я знаю, что он использует launchd на Mac для перезапуска процесса. Я заметил, что он установил файл io.keymetrics.PM2.plist под каталогом /Users/<username>/Library/LaunchAgents.

Это просто, просто удалите этот файл? или он делает что-то более навязчивое и нуждается в более грациозном удалении?

Он внутренне использует следующую команду, чтобы установить сценарий запуска

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

ответ

1

Во-первых, получить список всех запущенных агентов с помощью:

launchctl list | more

Или, если пм2 агент идет по то же имя:

launchctl list | grep pm2

Тогда, как только у вас есть имя PM2 агента, который является частью запуска программ, выполните:

sudo launchctl remove <pm2-agent-name>

И это все. Если вы хотите включить агент в будущем снова, вы можете сделать это:

sudo launchctl load <agent-name>

+0

Спасибо за ответ, но io.keymetrics.PM2.plist не отображается в списке, который отображается в списке launchctl. Как вы думаете, он появляется в этом последнем с каким-то другим именем? Я пробовал grep на pm2 и keymetrics, также пробовал вручную просматривать список после фильтрации из яблочных. – Shaunak

+1

Вы уверены, что внимательно просмотрели список? потому что он должен быть там ... –

+0

yep, double checked :( – Shaunak

0

Используйте launchctl разгрузку.

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

Файл присутствует, но я получаю сообщение об ошибке «launchctl: Ошибка разгрузки: io.keymetrics.PM2» .. Я тоже пытался sudo .. – Shaunak

+0

launchctl -w load ~/Library/LaunchAgents/Затем io.keymetrics.PM2.plist снова выгрузит этот файл. –

0

ОК, это работает для меня:

Я удалил два файла:

  • /Users/<username>/Library/LaunchAgents/io.keymetrics.PM2.plist
    Это один регистрирует команду pm2 resurrect при перезагрузке.

  • /Users/<username>/.pm2/dump.pm2
    Последнее один я полагаю, создается pm2 dump и без этой информации, даже если PM2 возрождается при перезагрузке нет ничего воскресить?

Никто не нашел более элегантный способ сделать это?

2

pm2 unstartup отлично работает на Ubuntu 16.04, который внутренне использует следующую команду:

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

же должен работать на Mac, а также (но внутренняя команда будет выглядеть немного по-другому).

0

Если хотите, чтобы остановить весь процесс запуска пм2 сделать:

pm2 unstartup 

Если вы просто хотите, чтобы удалить один приложение макияж:

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

Это может быть слишком поздно для вас, но может быть, это будет полезно для кого-то ...