У меня есть задание launchd, которое запускается каждые две минуты, но его нет в sudo launchctl list .

Я менял plist-файл, как имя файла, так и ключ Label. Я не выгрузил его раньше, но загрузил только что названный файл. Возможно, именно это и вызвало это, но я все еще ожидаю этого в списке.

Но его sudo launchctl list . Я проверил cron как хорошую меру тоже.

Я проверил других пользователей. Я вижу скрипт, который запускаемая работа запускается каждые две минуты, когда я делаю ps aux . Есть ли способ, которым я могу использовать ps aux чтобы увидеть, какой процесс launchd породил его?

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

Там тоже есть этот вопрос, но никто не ответил на него: https://apple.stackexchange.com/questions/240550/weird-launchd-behaviour-process-still-running-after-deleting-launchd-file-and-r

1 ответ1

1

Есть ли способ, которым я могу использовать ps aux чтобы увидеть, какой процесс launchd породил его?

Если вы используете ps -ef , первые 3 записи в каждой строке сообщают вам UID, PID и Parent PID процесса. Вот пример:

$  ps -ef|head -2
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 30May16 ??        25:05.63 /sbin/launchd

Между этими тремя вы должны быть в состоянии выяснить источник процесса, который вы ищете. Вот довольно очевидный пример, где я смотрю на softwareupdated (демон для обновления softwareupdate):

Сначала я ищу процесс, а затем подтверждаю его, используя ps -ef <some_PID> . У меня появилась привычка прекращать поиск с помощью grep -v grep чтобы исключить grep из моих результатов.

$  ps -ef|grep softwareupdated|grep -v grep
  200  3711     1   0 30May16 ??         6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated
$  ps -ef 3711
  UID   PID  PPID   C STIME   TTY           TIME CMD
  200  3711     1   0 30May16 ??         6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated

Родительский PID имеет номер 1 поэтому я проверяю, что:

$  ps -ef 1
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 30May16 ??        25:08.24 /sbin/launchd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .