Согласно man-странице Linux, killall
не убьет себя.
Изменить: я вижу, что это не упоминается на странице руководства OSX, но, вероятно, имеет такое же поведение. Причина в том, что вы можете использовать регулярные выражения, поэтому вполне возможно, что вы можете случайно попытаться уничтожить killall
при указании регулярного выражения, и это сделает killall
менее полезным.
Редактировать 2: Я могу быть совершенно неправ в этом, но разве OSX не называется "Дарвин" - и разве это не исходный код для OSX killall
?
Я немного заржавел на своем C, но следующее:
if (thispid == mypid)
continue;
в том, что кажется циклом, перебирающим все активные процессы, кажется, что это особая проверка для сравнения текущего процесса, который он пытается уничтожить, со своим собственным PID, поэтому он пропускает себя.
Думаю, вы можете скачать этот исходный код, удалить эти две строки и перекомпилировать его, если вам действительно нужен killall
, который убил бы сам себя.