Android

Jak zabić proces w systemie Linux

Poradnik Shella/Terminala (GNU/Linux, *BSD)

Poradnik Shella/Terminala (GNU/Linux, *BSD)

Spisu treści:

Anonim

Czy kiedykolwiek zdarzyło Ci się, że aplikacja została uruchomiona i nagle podczas korzystania z aplikacji przestaje ona odpowiadać i nieoczekiwanie ulega awarii? Próbujesz ponownie uruchomić aplikację, ale nic się nie dzieje, ponieważ oryginalny proces aplikacji nigdy tak naprawdę nie wyłącza się całkowicie.

Cóż, w pewnym momencie stało się nam wszystkim, prawda? Rozwiązaniem jest zakończenie lub zabicie procesu aplikacyjnego. Ale jak?

Na szczęście w Linuksie jest kilka narzędzi, które pozwalają zabijać błędne procesy., pokażemy Ci, jak używać poleceń kill , killall i pkill , aby zakończyć proces w systemie Linux.

Główna różnica między tymi narzędziami polega na tym, że kill kończy procesy na podstawie numeru ID procesu (PID), podczas gdy komendy killall i pkill kończą uruchomione procesy na podstawie ich nazw i innych atrybutów.

Zwykli użytkownicy mogą zabijać własne procesy, ale nie te, które należą do innych użytkowników, podczas gdy użytkownik root może zabijać wszystkie procesy.

Systemowe sygnały zabicia

kill , killall i pkill wysyłają dany sygnał do określonych procesów lub grup procesów. Gdy nie określono sygnału, każde narzędzie wysyła 15 ( TERM ).

Najczęściej używane sygnały to:

  • 1 (-HUP): aby ponownie załadować proces. 9 (-KILL): aby zabić proces. 15 (-TERM): aby z wdziękiem zatrzymać proces.

Sygnały można określić na trzy różne sposoby:

  • używając numeru (np. -1) z prefiksem „SIG” (np. -SIGHUP) bez prefiksu „SIG” (np. -HUP).

Użyj opcji -l , aby wyświetlić listę wszystkich dostępnych sygnałów:

kill -l # or killall -l

Kroki opisane poniżej będą działać we wszystkich dystrybucjach Linuksa.

Kończenie procesów za pomocą polecenia kill

Aby zakończyć proces za pomocą komendy kill , najpierw musisz znaleźć PID procesu. Możesz to zrobić za pomocą różnych poleceń, takich jak top , ps , pidof i pgrep .

Powiedzmy, że przeglądarka Firefox przestała odpowiadać i musisz zabić proces Firefox. Aby znaleźć identyfikator procesu, użyj polecenia pidof :

pidof firefox

Polecenie wyświetli wszystkie procesy Firefoksa:

2551 2514 1963 1856 1771

Gdy wiesz, że Firefox przetwarza PID, aby zakończyć wszystkie, wyślij sygnał TERM :

kill -9 2551 2514 1963 1856 1771

Kończenie procesów za pomocą polecenia killall

Komenda killall kończy wszystkie programy o określonej nazwie.

Korzystając z tego samego scenariusza co poprzednio, możesz zabić proces Firefoksa, wpisując:

killall -9 firefox

killall akceptuje kilka opcji, takich jak wysyłanie sygnałów do procesów należących do danego użytkownika, dopasowanie nazw procesów do wyrażeń regularnych oraz czas utworzenia. Możesz uzyskać listę wszystkich opcji, wpisując killall (bez żadnych argumentów) na swoim terminalu.

Na przykład, aby zakończyć wszystkie procesy działające jako użytkownik „sara”, uruchom następującą komendę:

sudo killall -u sara

Kończenie procesów za pomocą polecenia pkill

pkill kończy procesy, które pasują do wzorca podanego w wierszu poleceń:

pkill -9 firefox

Nazwa procesu nie musi być dokładnie zgodna.

Za pomocą pkill możesz również wysłać sygnał do procesów należących do danego użytkownika. Aby zabić tylko procesy firefox należące do użytkownika „sara”, należy wpisać:

pkill -9 -u sara firefox

Wniosek

Zakończenie niereagujących programów za pomocą poleceń kill , killall i pkill jest łatwym zadaniem. Musisz tylko znać nazwę procesu lub PID.

zabić terminal