launchd — Как я могу остановить запуск сервера Pow при загрузке компьютера (OS X)?

TL; DR: есть ли способ отключить запуск сервера Pow при загрузке моей машины, но сохранить возможность запуска сервера вручную через powder up когда мне это нужно для запуска?

я использую бух для моего местного развития (и управления через Порошковый камень). Я бы хотел настроить Pow так, чтобы сервер не запускался автоматически при загрузке, так как при его запуске расходуется заряд батареи, и я не всегда пишу код.

Пау добавил себя в launchd и я не могу, кажется, добраться до сценария, где сервер Pow не запускается после запуска, но все еще может быть запущен через powder up или другая эквивалентная команда, когда мне нужно запустить сервер.

То, что я пробовал, не сработало:

  • установка отключенного ключа для cx.pow.powd процесс через launchctl unload -w ~/Library/LaunchAgents/cx.pow.powd предотвращает загрузку Pow при запуске, но также предотвращает запуск процесса вручную, когда мне это нужно
  • установка RunAtLoad в NO в файле cx.pow.powd.plist также не работал, позже понял, что это не для управления поведением запуска демона.

4

Решение

Забыл опубликовать ответ, который я выяснил.

Оказывается, это довольно просто на самом деле, и довольно легко с помощью Lunchy (дружественная оболочка для launchctl) и быстрый псевдоним. Немного хакер, и я не очень хорошо знаю launchctl, но это помогает.

Шаги (предполагается, что Lunchy и Pow уже установлены):

  1. Бежать lunchy stop -w pow: это остановит Pow и пометит службу как отключенную в launchctl, поэтому Pow не будет загружаться при запуске машины. (Это тот же самый чистый эффект моих первоначальных попыток из вопроса.)
  2. Установите псевдоним в вашем .bash_profile (или же .profileи т. д.) для принудительного запуска службы. => alias pu='lunchy start -F pow'

Когда вы перезапустите компьютер, Pow должен быть остановлен и запущен pu (или ваш псевдоним) должен запустить его. Вы можете увидеть список служб, запущенных до / после, запустив lunchy status,

Это также хакерский, но эффективный способ иметь возможность запускать / останавливать группы сервисов, которые вам нужны для разработки, но не обязательно запускать остальное время (монго, redis и т. Д.).

3

Другие решения

использование KeepAlive с PathState ключ.

PathState <dictionary of booleans>
Each key in this dictionary is a file-system path. If the value of the key is true, then the job
will be kept alive as long as the path exists.  If false, the job will be kept alive in the
inverse condition. The intent of this feature is that two or more jobs may create semaphores in
the file-system namespace.

Создайте файл по пути, когда вы хотите запустить сервер Pow.

0

Я недавно столкнулся с этой проблемой и решил ее, просто двигая cx.pow.powd.plist в другую папку, которая успешно отключает автоматический запуск сервера Pow. Когда я хочу начать это снова, я просто двигаюсь cx.pow.powd.plist Вернуться в ~/Library/LaunchAgents/cx.pow.powd и беги powder up,

0
По вопросам рекламы [email protected]