OSX: как проверить возвращаемое значение команды launchctl - PullRequest
5 голосов
/ 02 ноября 2010

В OSX использование launchctl для запуска и остановки службы кажется великолепным, однако я не вижу возможности проверить возвращаемое значение, чтобы убедиться, что оно действительно запустилось.Возвращаемое значение всегда возвращается на ноль, даже если служба не запускаетсясуществование pid-файла для этого сервиса?

Ответы [ 2 ]

10 голосов
/ 02 ноября 2010

Вы, должно быть, делаете что-то не так, потому что launchctl возвращает только 0 в случае успеха:

$ launchctl start foobar
launchctl start error: No such process
$ echo $?
1

Кроме того, launchctl start принимает название задания (обычно это имя в стиле обратного DNS), а не путь к списку. Это launchctl load и unload, которые выбирают путь plist.

Если вы настаиваете на том, что это не работает для вас, вы можете просто скопировать вывод launchctl list для имени вашей работы и, при необходимости, проанализировать поля.

1 голос
/ 12 июля 2011

когда вы делаете launchctl list из терминала, вы заметите - во втором столбце ... есть список в основном 0 и - ... если ваша программа некорректно завершила работу, она покажет код завершения во втором столбце ... обычно -1, иногда -251, или что-то в этом случае может быть ... и помните ... просто потому, что ваш запускаемый элемент мог аварийно завершиться ... launchctl все еще лихорадочно может быть пытаться "заставить это работать" - каждые 10 секунд ..... так что не позволяйте запущенному процессу launchd задерживаться вечно, поскольку это определенно влияет на производительность ..

выгрузите его с помощью -w .... и полного пути к списку или, по крайней мере, остановите (и при необходимости удалите его) с идентификатором пакета. -w сделает подпольную запись в plist в вашей папке / var / db / launchd, сообщая ядру не загружать ее в следующий раз, когда машина загружается ... независимо от того, что "включенная" запись XML может сказать в Plist .. .. так что имейте в виду, что в игре присутствует нечто большее, чем просто флаг о том, воскрешен ли предмет при следующем запуске ...

Если вы хотите, вы можете создать резервную копию этого файла overrides.plist глубоко в папке tat var и начать заново, если со временем он слишком запутался с нагрузками и выгрузками ... есть другие способы сделать это, но я собираюсь чтобы заткнуться сейчас .. прежде чем я случайно проинструктировать вас, как полностью подключить ваш компьютер ...

...