2015-04-23 5 views
3

У меня есть процесс, чтобы разгрузить запуск программ, то команда, которую я использовал этоКак проверить запущенный процесс загружен или нет в MAC OS X из сценария оболочки?

launchctl unload /System/Library/LaunchDaemons/costomscript.plist

он отлично работает, если процесс уже загружен. Но если он не загружен, и я выполнил команду, он дает сообщение с сообщением о том, что такой процесс не загружен. Поэтому мне нужно иметь чек, если в настоящее время загружается файл .plist, тогда он должен быть выгружен иначе.

Как я могу достичь этого .. пожалуйста, помогите. Благодаря!!

+0

Вы можете просто отказаться от сообщения об ошибках ... 'launchctl выгрузить хуг 2>/DEV/null' –

+0

@MarkSetchell Setchell благодаря он решил мою проблему. –

ответ

4

Получить информацию о запущенных процессах можно получить с помощью launchctl.

Одна из возможных запросов - launchd с командой launchctl list.

список [-x] [метка]

без аргументов, список всех заданий, загруженных в в трех запуск программ колонн. В первом столбце отображается PID задания, если он запущен. Во втором столбце отображается последний статус выхода задания. Если число в этом столбце отрицательное, оно представляет отрицательный сигнал , который убил задание. Таким образом, «-15» указывает, что работа была прекращена с помощью SIGTERM. Третья колонка - это метка задания.

Если ваш plist загружен, он должен быть указан, в противном случае нет. Также первый столбец содержит pid процесса, так что вы можете проверить, если процесс запущен, например:

$ launchctl list |grep myprocess 
600 0 org.example.myprocess.1234 

Существует также launchctl print команды, которая дает подробный вывод о процессе. Проверьте, можете ли вы его использовать.

print domain-target | служебная цель

Распечатывает информацию о указанной услуге или домене. Домен вывод включает в себя различные свойства домена, а также список услуг и конечных точек в домене с состоянием, относящимся к каждому. Сервисный вывод включает в себя различные свойства услуги, включая информацию о его происхождении на диске, его текущем состоянии, контексте выполнения и последнем статусе выхода.

Например:

$ launchctl print gui/501/org.example.myprocess.1234 | grep state 
    state = running 
+0

Знаете ли вы, что такое числа на ярлыке задания после последней точки? .123 в вашем примере. –

+0

Что делать, если есть отрицательное число под статусной меткой, например: 3832 -9 \t com.apple.SafariBookmarksSyncAgent, что означает знак невнимательности? – Sayan