Zabijanie nieposłusznych procesów – polecenie kill
Witam wszystkich po nieco dłuższej przerwie. Dzisiaj przyszedł czas na poskromienie naszych (czasami nieposłusznych) procesów. Do tego celu bardzo skutecznie nadaje się polecenie kill.
Działanie i używanie polecenia do skomplikowanych nie należy. Polecenie to po prostu wysyła odpowiedni sygnał do działającego (lub nie) procesu z żądaniem jego zamknięcia, zatrzymania. Nie będziemy się skupiali na wszystkich dostępnych sygnałach, a jest ich 64! Zamiast tej nieco przerażającej liczby omówimy sobie jedynie 4.
SIGTERM – powoduje poprawne zamknięcie procesu
SIGKILL – powoduje prawdziwe zabicie procesu
SIGSTOP – zatrzymanie procesu
SIGCONT – wznowienie działania procesu, jeśli wcześniej został zatrzymany
Domyślnie stosowanym sygnałem jest SIGTERM. Co do ostatnich trzech sygnałów to one nie są tak naprawdę przetwarzane przez proces. Sprawę załatwia system operacyjny.
Do pełni szczęści potrzebny będzie nam jeszcze numer PID procesu. Sprawdzić go możemy za pomocą polecenia ps. Jeżeli już posiadamy nasz upragniony PID to możemy spróbować zakończyć wybrany przez nas proces poprzez wydanie następującego polecenia:
kill nr_PID
Nie ma również przeszkód, aby zakończyć wiele procesów naraz:
kill nr_PID1 nr_PID2 nr_PID3
Jeżeli będziemy chcieli zmienić typ sygnału to możemy się posługiwać jego wartością liczbową lub nazwą:
kill -9 nr_PID lub kill -SIGKILL nr_PID
Jeżeli będziemy chcieli poznać listę wszystkich sygnałów to możemy posłużyć się opcją -l polecenia kill lub podręcznikiem man.
Na koniec podam przykład działania sygnału SIGSTOP oraz SIGCONT. Najlepiej jak otworzymy sobie program gedit. Następnie wydamy polecenie:
kill -SIGSTOP nr_PID_gedit
Jeżeli teraz przełączymy się teraz na program gedit to możemy zaobserwować, że stanie się on nieaktywny. Do ponownego działania możemy go przywrócić korzystając z sygnału SIGCONT:
kill -SIGCONT nr_PID_gedit
Numery PID możemy również sprawdzić korzystając np. z Monitora systemu w środowisku GNOME. Tyle, że tam jest on nazwany jako ID.
Na teraz to wszystko i zapraszam ponownie.