htop pozwala mi ładnie zobaczyć drzewa procesów w skorupie. Mogę zabijać procesy, naciskając, F9 (KILL)
a następnie wybierając sygnał (np. 15 SIGTERM
), Który chcę wysłać do zadania, aby zabić.
Jednak pozwala mi to zabić tylko jeden proces naraz. Czy istnieje sposób na zabicie pełnego drzewa procesów za pomocą htop
?
Można przejąć
htop
„ss
polecenie. Whtop
, naciśnięcies
wywołujestrace -p <the-pid-of-the-selected-process>
.Następnie możesz utworzyć
strace
polecenie zawierające coś takiego:I umieść go w jakimś katalogu
~/.htop-hijack
, i wywołaj htop jako:Następnie naciśnięcie
s
spowoduje wywołanie tego polecenia zamiaststrace
(musisz nacisnąć Esc, aby później powrócić do ekranu głównego).źródło
Od dawna istnieje taka funkcja, ale nie było jej w instrukcji do 2018 roku: naciśnij
c
klawisz, aby wybrać aktualnie podświetlony proces, a także wszystkie jego dzieci. Następnie operacje dotyczące wybranych procesów (takie zabijanie za pomocąk
klucza) dotyczą procesu i jego elementów podrzędnych.To jednak nie jest atomowe. Jeśli odradzają się nowe dzieci między momentem naciśnięcia
c
a momentem, w którym jądro zabije wszystkie procesy, nie zostaną zabite i najprawdopodobniej zostaną ponownie przyłączone do procesu init. Wynika to z faktu, że htop zapętla wybrane procesy i zabija je jeden po drugim.Ja proponuje poprawkę do dodawania funkcji grupy atomowej zabijania do htop jakiś czas temu, ale realizacja nie była konsensusie na tyle na to, aby zostać połączone. Dzięki niemu można zabić całą grupę procesów atomowo z htopa. To nie jest dokładnie to samo, co zabicie całego drzewa, ale AFAIK, jądro nie zapewnia żadnego sposobu na zabicie dowolnego drzewa atomowo.
źródło