Как я могу убить сразу все оболочки в Unix?

Мой Mac со временем становится медленнее. Причина в том, что у меня огромное количество ракушек, таких как Bashes и Fishes. У каждой оболочки свой PID. Убивать снаряды один за другим слишком сложно. Как я могу убить их сразу?


person Léo Léopold Hertz 준영    schedule 18.01.2009    source источник
comment
Вы должны устранить причину, а не симптом. Т.е. почему у вас получается так много оболочек.   -  person Dave C    schedule 19.01.2009


Ответы (6)


Попробуйте killall bash или killall -9 bash, если они этому сопротивляются.

person nlativy    schedule 18.01.2009

Команда killall может убить все процессы с заданным именем:

killall bash
person Robert Gamble    schedule 18.01.2009
comment
Разве это не угрожает оболочке, из которой он запущен? - person Jonathan Leffler; 18.01.2009
comment
Кроме того, это зависит от Linux. В старых версиях unix-систем для killall использовалась разная симантика. - person dmckee --- ex-moderator kitten; 18.01.2009
comment
@Jonathan: Да, если оболочка, из которой запускается пример, является оболочкой bash, она также будет убита, из вопроса, похоже, это желаемое поведение. - person Robert Gamble; 19.01.2009
comment
кажется желаемым поведением: по крайней мере, это то, о чем он просил ... а это не всегда то, что на самом деле желательно ... - person dmckee --- ex-moderator kitten; 19.01.2009
comment
@ Роберт: Я думаю, будьте осторожны с тем, о чем вы просите; вы можете получить это примерно то, что применимо. Эти комментарии сделали предостережение для спрашивающего. : D - person Jonathan Leffler; 20.01.2009

Согласно другим ответам, обычная команда - killall.

Однако обратите внимание, что в некоторых версиях UNIX (например, DEC Unix) эта команда буквально убивает все процессы.

Убедитесь, что вы знаете, какое поведение имеет ваша UNIX, прежде чем использовать ее!

person Alnitak    schedule 18.01.2009
comment
Где коды для killall и kill в моем компе для проверки? - person Léo Léopold Hertz 준영; 18.01.2009
comment
kill -l обычно перечисляет все сигналы. - person Keltia; 18.01.2009
comment
@Keltia, сигналы и kill (1) совершенно не имеют отношения к этому вопросу / ответу. - person Dave C; 19.01.2009

Я сильно сомневаюсь в вашем первоначальном диагнозе. В Unix неактивный процесс не требует ресурсов. Это не запланировано, его память выгружена и т. Д. Если есть проблема медлительности, вероятно, у нее другая причина. Запуск вершины - это первый шаг.

person bortzmeyer    schedule 19.01.2009
comment
Оболочка Fish, вероятно, бета-версия, потребляет почти весь мой процессор. Жалко, потому что Fish проста в использовании. Мне нравятся цвета. - person Léo Léopold Hertz 준영; 19.01.2009

Знаете имя исполняемого файла? Вы можете использовать killall во многих системах Unix.

# killall <name>
person rjamestaylor    schedule 18.01.2009

Я считаю, что нельзя убить сразу все свои снаряды. Вы должны использовать много killalls, отдельно для каждой оболочки, как сказал выше Rjamestaylor:

killall bash
killall fish

И так далее.

person Léo Léopold Hertz 준영    schedule 18.01.2009
comment
Что ж, если вы выполняете это из оболочки bash (по умолчанию в OS X), вам нужно запустить эти две команды в обратном порядке. :-) - person Ben Blank; 19.01.2009