htop позволяет мне красиво видеть деревья процессов внутри оболочки. Я могу убить процессы, нажав, F9 (KILL)
а затем выбрав, какой сигнал (например 15 SIGTERM
) я хочу отправить на работу, чтобы убить.
Однако это позволяет мне убивать только один процесс за раз. Есть ли способ убить полное дерево процессов, использующих htop
?
Вы можете захватить
htop
«ss
команду. Вhtop
нажатиеs
вызываетstrace -p <the-pid-of-the-selected-process>
.Тогда вы можете создать
strace
команду, которая содержит что-то вроде:И поместите его в какую-нибудь директорию, например
~/.htop-hijack
, и вызовите htop как:Затем нажатие
s
вызовет эту команду вместоstrace
(вам нужно нажать Esc, чтобы потом вернуться к главному экрану).источник
Долгое время для этого была функция, но она отсутствовала в руководстве до 2018 года: нажмите
c
клавишу, чтобы выбрать выделенный в данный момент процесс, а также все его дочерние элементы. Затем операции, которые применяются к выбранным процессам (например, удаление с помощьюk
ключа), применяются к процессу и его дочерним элементам.Это не атомно, хотя. Если новые дети появляются между моментом нажатия
c
и моментом, когда ядро убило все процессы, они не будут уничтожены и, скорее всего, будут подключены к процессу инициализации. Это потому, что htop зацикливается на выбранных процессах и убивает их одного за другим.Я предложил патч для добавления функции атомарного уничтожения групп в htop некоторое время назад, но реализация не была достаточно согласованной, чтобы ее можно было объединить. С его помощью можно полностью убить целую группу процессов из htop. Это не совсем то же самое, что убить целое дерево, но AFAIK, ядро не предоставляет никакого способа убить произвольное дерево атомарно.
источник