For a few days now, a lot of processes I start on my Manjaro linux machine do not exit properly, but become defunct. I first noticed that
fehwindows stayed around even when I pressed Q and needed
xkillto be removed. I re-installed feh (and due to the rolling release model also several other packages). I have a computational model running which I did not want to needlessly interrupt (for some time now, maybe I have mistreated the hardware? I did not overclock the laptop or do anything else outside the ordinary, though), so I tried to view the output pictures in the web browser instead, and now I have several qutebrowser and firefox processes as well as some other applications (eg. a vlc, a gimp) hanging, some with defunct child processes, some defunct themselves.
What can cause processes turning into zombies instead of exiting in this extreme and general manner? How do I debug and hopefully fix the cause?
A zombie process is a process whose execution is completed but it still has an entry in the process table. Zombie processes usually occur for child processes, as the parent process still needs to read its child’s exit status.
That means that the parent process ended before the child (crushed?). Can be something like OOM killer or a segfault – if it started doing it for multiple processes it can be a bug in something like libc, or maybe the windows manager or kernel or even a hardware problem (memory corruption).
does any background process (daemon) have any zombies as well? For example if you install apache or nginx and let it running with 20 processes, does it ever have one zombie? If not I would focus on the window manager. Can you switch the window manager? Does it make any difference? I do not have experience with Manjaro linux, but it seems that it is based on arch. Can you check integrity of all the installed packages? I have found some guide here https://bbs.archlinux.org/viewtopic.php?id=34281
Anyway, what you are looking for is that some process starts another process and the first one ends before the second and that usually should not happen.