Less is more though:
ps afuwwx | less +u -p'^(\S+\s+){7}Z.*'
That's like, give me a forest (tree) of all users' processes in a user oriented format with unlimited width on any tty and show it to me at half a screen above where it matches the case that the 8th column contains a Z, and why not highlight the whole line.
User oriented format seems to mean:
USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND
so the Zombie status will show up in the 8th column.
You can throw in an N
before the p
if you want line numbers, and a J
if you want an asterisk at the match. Sadly if you use G
to not highlight the line that asterisk will not show, though J
creates space for it.
You end up getting something that looks like:
…
root 2919 0.0 0.0 61432 5852 ? Ss Jan24 0:00 /usr/sbin/sshd -D
root 12984 0.0 0.1 154796 15708 ? Ss 20:20 0:00 \_ sshd: lamblin [priv]
lamblin 13084 0.0 0.0 154796 9764 ? S 20:20 0:00 \_ sshd: lamblin@pts/0
* lamblin 13086 0.0 0.0 13080 5056 pts/0 Z 20:20 0:00 \_ -bash <defunct>
lamblin 13085 0.0 0.0 13080 5056 pts/0 Ss 20:20 0:00 \_ -bash
root 13159 0.0 0.0 111740 6276 pts/0 S 20:20 0:00 \_ su - nilbmal
nilbmal 13161 0.2 0.0 13156 5004 pts/0 S 20:20 0:00 \_ -su
nilbmal 13271 0.0 0.0 28152 3332 pts/0 R+ 20:20 0:00 \_ ps afuwwx
nilbmal 13275 0.0 0.0 8404 848 pts/0 S+ 20:20 0:00 \_ less +u -Jp^(\S+\s+){7}Z.*
…
You could follow this up with (and it'll detect if your terminal likes -U Unicode or -A Ascii):
pstree -psS <PID LIST>
OR just, you know, use the up-arrow in less
to follow that tree/forest through the hierarchy; which is what I was recommending with the "Less is more" approach.
ps auxwww | grep 'Z'
command should have shown a process in aZ
state. The "system information" saying=> There is 1 zombie process.
seems to be a bug. Either that, or there's missing information in the question.