A folyamatok státusza a top parancs képernyője szerint lehet “running” – “futó“, “sleeping” – “alvó“, “stopped” – “megállított“, illetve “zombie” – “zombi“.
A tegnapi secure shell-es lecke megírása közben véletlenül lehajtottam a Linux notebook képernyőjét, azaz összecsuktam a gépet. Közben az asztali Mac mini-ről bejelentkezve maradtam.
Ilyenkor egy bennragadt shell processzről van szó. Majdhogynem zombi. Persze valójában nem az. Zombit ugyanis nem lehet kill-elni, mivel a zombi processz már “halott”. Akkor tűnik el a processztáblából, ha a szülő processzét kinyírtuk. 🙂
A szülő processz id-ket ps all vagy céltudatosabban a ps -A -ostat,pid,ppid paranccsal írhatjuk ki. Ez utóbbinál az ostat ha z vagy Z, akkor van szó zombi processzről, a pid a processz azonosító, a ppid pedig a szülő folyamaté. Bővebben az alábbi linken lehet erről olvasni.
https://stackoverflow.com/questions/16944886/how-to-kill-zombie-process
Hogy hogyan lőttem ki kill -9-cel a bennragadt bash processzt, lásd az alábbiakban.
gvamosi@gergo1:~$ w
23:56:28 up 2 days, 13:11, 2 users, load average: 1.16, 0.91, 0.94
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
gvamosi tty2 tty2 Sat10 2days 1:39m 11.13s /opt/google/chrome/chrome --type=renderer --field-trial-handle=15503761646981189628,17074726826077816693,131072 --lang=en-US --enable-auto-reload
gvamosi pts/1 192.168.0.113 18:21 5:35m 0.00s 0.00s -bash
gvamosi@gergo1:~$ ps axu | grep bash
gvamosi 5312 0.0 0.0 7300 3612 pts/0 Ss Sep14 0:00 -bash
gvamosi 26716 0.0 0.0 6076 876 pts/0 S+ 23:56 0:00 grep bash
gvamosi 32208 0.0 0.0 7188 3884 pts/1 Ss+ 18:21 0:00 -bash
gvamosi@gergo1:~$ kill -9 32208
gvamosi@gergo1:~$ ps axu | grep bash
gvamosi 5312 0.0 0.0 7300 3612 pts/0 Ss Sep14 0:00 -bash
gvamosi 27005 0.0 0.0 6076 884 pts/0 S+ 23:56 0:00 grep bash
gvamosi@gergo1:~$ w
23:56:56 up 2 days, 13:12, 1 user, load average: 1.04, 0.90, 0.93
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
gvamosi tty2 tty2 Sat10 2days 1:39m 11.14s /opt/google/chrome/chrome --type=renderer --field-trial-handle=15503761646981189628,17074726826077816693,131072 --lang=en-US --enable-auto-reload
gvamosi@gergo1:~$
A w paranccsal megnéztem, hogy pts/1-en “benn maradtam” a szerverként szolgáló notebook-on gvamosi felhasználó név alatt (2 users). Utána ps paranccsal megkerestem azt a bash shell-t, ami szintén a pts/1-hez van rendelve. Ezután elég volt egy kill -9 PID – processz azonosító, azaz kill -9 32208 parancs. Jól látható az utána kiadott w parancs után, hogy eltűnt a “bennragadt” felhasználó (1 user). 🙂