1

Из моего понимания killall name является то, что он ищет все процессы, имя которых name. killall killall должен искать и убивать себя, так что я не ожидал вывода. Так что мне любопытно
Почему это выглядит так:

nathan:~ max$ killall killall
No matching processes belonging to you were found
nathan:~ max$ 

Я на текущей OS X.

1 ответ1

5

Согласно man-странице Linux, killall не убьет себя.

Изменить: я вижу, что это не упоминается на странице руководства OSX, но, вероятно, имеет такое же поведение. Причина в том, что вы можете использовать регулярные выражения, поэтому вполне возможно, что вы можете случайно попытаться уничтожить killall при указании регулярного выражения, и это сделает killall менее полезным.

Редактировать 2: Я могу быть совершенно неправ в этом, но разве OSX не называется "Дарвин" - и разве это не исходный код для OSX killall ?

Я немного заржавел на своем C, но следующее:

  if (thispid == mypid)
        continue;

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

Думаю, вы можете скачать этот исходный код, удалить эти две строки и перекомпилировать его, если вам действительно нужен killall , который убил бы сам себя.

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