Repository: lutris/lutris

Issue:
Wine processes run via lutris are classified as zombie processes (defunct)
**Describe the bug**
Wine processes are classified as zombie processes (e.g. battle.net client).
See screenshot at the end.

**Expected behavior**
I'm not an expert on the linux platform, but I feel like those processes should not be classified as zombie processes.

**Current behavior**
The wine processes run through lutris are classified as zombie processes.

**Steps to reproduce**
- Run e.g. battle.net client via lutris
- Execute "ps aux | grep 'Z'" in shell

**Lutris debugging output**

> INFO     2019-10-21 22:25:29,240 [application.do_command_line:225]:Running Lutris 0.5.3
INFO     2019-10-21 22:25:29,241 [startup.check_driver:54]:Using NVIDIA drivers 435.21 for x86_64
INFO     2019-10-21 22:25:29,241 [startup.check_driver:58]:GPU: GeForce GTX 1070
INFO     2019-10-21 22:25:29,241 [startup.check_driver:75]:GPU: 10DE:1B81 1462:3302 using nvidia drivers
INFO     2019-10-21 22:25:29,263 [startup.check_vulkan:129]:Vulkan is supported
ERROR    2019-10-21 22:25:29,265 [startup.fill_missing_platforms:159]:Providing missing platorm for game legend-of-zelda-windwaker
WARNING  2019-10-21 22:25:29,265 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
ERROR    2019-10-21 22:25:29,267 [startup.fill_missing_platforms:159]:Providing missing platorm for game super-mario-sunshine
WARNING  2019-10-21 22:25:29,267 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
ERROR    2019-10-21 22:25:29,268 [startup.fill_missing_platforms:159]:Providing missing platorm for game super-smash-bros-melee
WARNING  2019-10-21 22:25:29,268 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
ERROR    2019-10-21 22:25:29,270 [startup.fill_missing_platforms:159]:Providing missing platorm for game the-legend-of-zelda-ocarina-of-time-master-quest
WARNING  2019-10-21 22:25:29,270 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
ERROR    2019-10-21 22:25:29,271 [startup.fill_missing_platforms:159]:Providing missing platorm for game the-legend-of-zelda-twilight-princess
WARNING  2019-10-21 22:25:29,271 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
INFO     2019-10-21 22:25:29,272 [dxvk.get_dxvk_versions:21]:Updating DXVK versions
DEBUG    2019-10-21 22:25:29,509 [store.get_missing_media:198]:Requesting missing icons from API for super-mario-sunshine, crash-bandicoot-warped, the-legend-of-zelda-twilight-princess, the-legend-of-zelda-ocarina-of-time-master-quest, legend-of-zelda-windwaker, super-smash-bros-melee, anno-1800
INFO     2019-10-21 22:25:29,510 [lutriswindow.toggle_connection:580]:Connected to lutris.net as rqnn11
DEBUG    2019-10-21 22:25:29,512 [http.get:68]:GET https://lutris.net/api/runtime
DEBUG    2019-10-21 22:25:29,518 [http.get:68]:GET https://lutris.net/api/games
DEBUG    2019-10-21 22:25:29,527 [http.get:68]:GET https://lutris.net/api/games/library/rqnn11
DEBUG    2019-10-21 22:25:29,791 [api.get_game_api_page:132]:Loaded 7 games from page 1
DEBUG    2019-10-21 22:25:29,935 [pga_game.platform:68]:Game Legend of Zelda: Windwaker has no platform
WARNING  2019-10-21 22:25:29,936 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
DEBUG    2019-10-21 22:25:29,941 [pga_game.platform:68]:Game Super Mario Sunshine has no platform
WARNING  2019-10-21 22:25:29,941 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
DEBUG    2019-10-21 22:25:29,944 [pga_game.platform:68]:Game Super Smash Bros. Melee has no platform
WARNING  2019-10-21 22:25:29,944 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
DEBUG    2019-10-21 22:25:29,947 [pga_game.platform:68]:Game The Legend of Zelda: Ocarina of Time / Master Quest has no platform
WARNING  2019-10-21 22:25:29,947 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
DEBUG    2019-10-21 22:25:29,950 [pga_game.platform:68]:Game The Legend of Zelda Twilight Princess has no platform
WARNING  2019-10-21 22:25:29,950 [game.set_platform_from_runner:213]:Can't get platform for runner Dolphin
INFO     2019-10-21 22:25:30,082 [dxvk.get_dxvk_versions:21]:Updating D9VK versions

**System information**
>{
  "comment": "Wine processes run through lutris are classified as zombie processes (defunct).",
  "system": {
    "nvidia_driver": {
      "nvrm": {
        "vendor": "NVIDIA",
        "platform": "UNIX",
        "arch": "x86_64",
        "version": "435.21",
        "date": "Sun Aug 25 08:17:57 CDT 2019"
      }
    },
    "nvidia_gpus": [
      {
        "Model": "GeForce GTX 1070",
        "IRQ": "60",
        "GPU UUID": "GPU-17f677f7-f56b-0f17-845c-9ac928adf8d0",
        "Video BIOS": "86.04.50.00.2a",
        "Bus Type": "PCIe",
        "DMA Size": "47 bits",
        "DMA Mask": "0x7fffffffffff",
        "Bus Location": "0000:09:00.0",
        "Device Minor": "0",
        "Blacklisted": "No"
      }
    ],
    "gpus": [
      {
        "DRIVER": "nvidia",
        "PCI_ID": "10DE:1B81",
        "PCI_SUBSYS_ID": "1462:3302",
        "PCI_CLASS": "30000",
        "PCI_SLOT_NAME": "0000:09:00.0",
        "MODALIAS": "pci:v000010DEd00001B81sv00001462sd00003302bc03sc00i00"
      }
    ],
    "env": {
      "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh",
      "GDMSESSION": "budgie-desktop",
      "LANG": "de_DE.UTF-8",
      "XDG_CURRENT_DESKTOP": "Budgie:GNOME",
      "TERM": "xterm-256color",
      "LC_IDENTIFICATION": "de_DE.UTF-8",
      "GIO_LAUNCHED_DESKTOP_FILE_PID": "1452",
      "XDG_GREETER_DATA_DIR": "/var/lib/lightdm-data/user",
      "SESSION_MANAGER": "local/mintberrycrunch:@/tmp/.ICE-unix/1196,unix/mintberrycrunch:/tmp/.ICE-unix/1196",
      "QT_IM_MODULE": "ibus",
      "GDK_BACKEND": "x11",
      "LC_MEASUREMENT": "de_DE.UTF-8",
      "USER": "user",
      "XDG_MENU_PREFIX": "gnome-",
      "XDG_SESSION_PATH": "/org/freedesktop/DisplayManager/Session0",
      "COLORTERM": "truecolor",
      "DESKTOP_SESSION": "budgie-desktop",
      "HOME": "/home/user",
      "XDG_VTNR": "7",
      "XDG_SEAT": "seat0",
      "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
      "LC_NUMERIC": "de_DE.UTF-8",
      "GTK_MODULES": "canberra-gtk-module",
      "XDG_DATA_DIRS": "/home/user/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop",
      "VTE_VERSION": "5802",
      "XDG_SESSION_DESKTOP": "budgie-desktop",
      "LC_TIME": "de_DE.UTF-8",
      "MAIL": "/var/spool/mail/user",
      "XDG_SEAT_PATH": "/org/freedesktop/DisplayManager/Seat0",
      "LOGNAME": "user",
      "LC_PAPER": "de_DE.UTF-8",
      "PATH": "/home/user/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin",
      "XDG_RUNTIME_DIR": "/run/user/1000",
      "XMODIFIERS": "@im=ibus",
      "XDG_SESSION_ID": "2",
      "SHELL": "/bin/bash",
      "LC_MONETARY": "de_DE.UTF-8",
      "GTK2_RC_FILES": "/home/user/.gtkrc-2.0",
      "LC_TELEPHONE": "de_DE.UTF-8",
      "EDITOR": "/usr/bin/nano",
      "GIO_LAUNCHED_DESKTOP_FILE": "/home/user/.config/autostart/guake.desktop",
      "XDG_SESSION_TYPE": "x11",
      "QT_QPA_PLATFORMTHEME": "qt5ct",
      "PWD": "/home/user",
      "XAUTHORITY": "/home/user/.Xauthority",
      "MOZ_PLUGIN_PATH": "/usr/lib/mozilla/plugins",
      "LC_NAME": "de_DE.UTF-8",
      "DISPLAY": ":0",
      "XDG_SESSION_CLASS": "user",
      "SHLVL": "1",
      "DESKTOP_AUTOSTART_ID": "10983adb6afabf82aa157167272856303400000011960019",
      "LC_ADDRESS": "de_DE.UTF-8",
      "OLDPWD": "/home/user",
      "_": "/usr/bin/lutris"
    },
    "missing_libs": {
      "OPENGL": [
        [],
        []
      ],
      "VULKAN": [
        [],
        []
      ],
      "WINE": [
        [],
        []
      ],
      "GAMEMODE": [
        [
          "libgamemodeauto.so"
        ],
        [
          "libgamemodeauto.so"
        ]
      ]
    },
    "cpus": [
      {
        "processor": "0",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2212.496",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "0",
        "cpu cores": "8",
        "apicid": "0",
        "initial apicid": "0",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "1",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1823.930",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "1",
        "cpu cores": "8",
        "apicid": "2",
        "initial apicid": "2",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "2",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1993.170",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "2",
        "cpu cores": "8",
        "apicid": "4",
        "initial apicid": "4",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "3",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2556.169",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "3",
        "cpu cores": "8",
        "apicid": "6",
        "initial apicid": "6",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "4",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2119.329",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "4",
        "cpu cores": "8",
        "apicid": "8",
        "initial apicid": "8",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "5",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2966.842",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "5",
        "cpu cores": "8",
        "apicid": "10",
        "initial apicid": "10",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "6",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2468.737",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "6",
        "cpu cores": "8",
        "apicid": "12",
        "initial apicid": "12",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "7",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1844.549",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "7",
        "cpu cores": "8",
        "apicid": "14",
        "initial apicid": "14",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "8",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2417.825",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "0",
        "cpu cores": "8",
        "apicid": "1",
        "initial apicid": "1",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "9",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1833.194",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "1",
        "cpu cores": "8",
        "apicid": "3",
        "initial apicid": "3",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "10",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1881.590",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "2",
        "cpu cores": "8",
        "apicid": "5",
        "initial apicid": "5",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "11",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2520.189",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "3",
        "cpu cores": "8",
        "apicid": "7",
        "initial apicid": "7",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "12",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2322.305",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "4",
        "cpu cores": "8",
        "apicid": "9",
        "initial apicid": "9",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "13",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "3206.375",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "5",
        "cpu cores": "8",
        "apicid": "11",
        "initial apicid": "11",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "14",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "2313.211",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "6",
        "cpu cores": "8",
        "apicid": "13",
        "initial apicid": "13",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      },
      {
        "processor": "15",
        "vendor_id": "AuthenticAMD",
        "cpu family": "23",
        "model": "1",
        "model name": "AMD Ryzen 7 1800X Eight-Core Processor",
        "stepping": "1",
        "microcode": "0x8001138",
        "cpu MHz": "1808.456",
        "cache size": "512 KB",
        "physical id": "0",
        "siblings": "16",
        "core id": "7",
        "cpu cores": "8",
        "apicid": "15",
        "initial apicid": "15",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "13",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca",
        "bugs": "sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass",
        "bogomips": "7188.07",
        "TLB size": "2560 4K pages",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "43 bits physical, 48 bits virtual",
        "power management": "ts ttp tm hwpstate eff_freq_ro [13] [14]"
      }
    ],
    "drives": [
      {
        "name": "sda",
        "fstype": null,
        "label": null,
        "uuid": null,
        "fsavail": null,
        "fsuse%": null,
        "mountpoint": null,
        "children": [
          {
            "name": "sda1",
            "fstype": "vfat",
            "label": null,
            "uuid": "22C0-BB06",
            "fsavail": "299,1M",
            "fsuse%": "0%",
            "mountpoint": "/boot/efi"
          },
          {
            "name": "sda2",
            "fstype": "ext4",
            "label": null,
            "uuid": "98c48195-bfec-42dd-b56f-b198d6af5608",
            "fsavail": "644G",
            "fsuse%": "23%",
            "mountpoint": "/"
          },
          {
            "name": "sda3",
            "fstype": "swap",
            "label": null,
            "uuid": "df875c64-69c0-4144-85a6-99196b6ad21e",
            "fsavail": null,
            "fsuse%": null,
            "mountpoint": "[SWAP]"
          }
        ]
      },
      {
        "name": "sdb",
        "fstype": null,
        "label": null,
        "uuid": null,
        "fsavail": null,
        "fsuse%": null,
        "mountpoint": null,
        "children": [
          {
            "name": "sdb1",
            "fstype": "ext4",
            "label": null,
            "uuid": "02713efc-a977-4569-8e64-416f82564105",
            "fsavail": "10,9G",
            "fsuse%": "93%",
            "mountpoint": "/run/media/user/games"
          }
        ]
      },
      {
        "name": "sdc",
        "fstype": null,
        "label": null,
        "uuid": null,
        "fsavail": null,
        "fsuse%": null,
        "mountpoint": null,
        "children": [
          {
            "name": "sdc1",
            "fstype": "ntfs",
            "label": "Wiederherstellung",
            "uuid": "F01621B916218228",
            "fsavail": null,
            "fsuse%": null,
            "mountpoint": null
          },
          {
            "name": "sdc2",
            "fstype": "vfat",
            "label": null,
            "uuid": "F821-ED9A",
            "fsavail": null,
            "fsuse%": null,
            "mountpoint": null
          },
          {
            "name": "sdc3",
            "fstype": null,
            "label": null,
            "uuid": null,
            "fsavail": null,
            "fsuse%": null,
            "mountpoint": null
          },
          {
            "name": "sdc4",
            "fstype": "ntfs",
            "label": null,
            "uuid": "3E5A235F5A231367",
            "fsavail": null,
            "fsuse%": null,
            "mountpoint": null
          }
        ]
      }
    ],
    "ram": {
      "speicher": {
        "gesamt": "16416820",
        "benutzt": "2995368",
        "frei": "9412460",
        "gemns.": "241316",
        "Puffer/Cache": "4008992",
        "verf\u00fcgbar": "12845260"
      },
      "swap": {
        "gesamt": "18059628",
        "benutzt": "0",
        "frei": "18059628"
      }
    },
    "dist": [
      "Manjaro Linux",
      "18.1.1",
      "Juhraya"
    ],
    "glxinfo": {
      "opengl_shading_language_version": "4.60 NVIDIA",
      "direct_rendering": "Yes",
      "opengl_core_profile_version": "4.6.0 NVIDIA 435.21",
      "opengl_core_profile_shading_language_version": "4.60 NVIDIA",
      "opengl_core_profile_context_flags": "(none)",
      "opengl_profile_mask": "(none)",
      "opengl_core_profile_profile_mask": "core profile",
      "opengl_version": "4.6.0 NVIDIA 435.21",
      "opengl_es_profile_version": "OpenGL ES 3.2 NVIDIA 435.21",
      "name_of_display": ":0",
      "opengl_context_flags": "(none)",
      "opengl_vendor": "NVIDIA Corporation",
      "opengl_renderer": "GeForce GTX 1070/PCIe/SSE2",
      "display": ":0",
      "opengl_es_profile_shading_language_version": "OpenGL ES GLSL ES 3.20",
      "screen": "0"
    }
  }
}

**Screenshots**
![Output of ps aux | grep 'Z'](https://i.imgur.com/g8x7TPX.png "ps aux | grep 'Z'")



Discussion:
This is probably because `lutris-wrapper` waits for the initial "main" process launched to exit before it begins reaping any other child processes. It would probably be better if instead `lutris-wrapper` didn't treat the initial process in any special way and immediately began reaping children as they die.

Resolving patch:
diff --git a/lutris/util/monitor.py b/lutris/util/monitor.py
--- a/lutris/util/monitor.py
+++ b/lutris/util/monitor.py
@@ -2,7 +2,6 @@
 import os
 import shlex
 
-from lutris.util.log import logger
 from lutris.util.process import Process
 
 
@@ -57,9 +56,6 @@ def __init__(self, include_processes, exclude_processes):
         self.exclude_processes = [
             x[0:15] for x in EXCLUDED_PROCESSES + self.parse_process_list(exclude_processes)
         ]
-        # Keep a copy of the monitored processes to allow comparisons
-        self.children = []
-        self.ignored_children = []
 
     @staticmethod
     def parse_process_list(process_list):
@@ -70,38 +66,9 @@ def parse_process_list(process_list):
             return shlex.split(process_list)
         return process_list
 
-    def iter_children(self, process, topdown=True):
-        """Iterator that yields all the children of a process"""
-        for child in process.children:
-            if topdown:
-                yield child
-            yield from self.iter_children(child, topdown=topdown)
-            if not topdown:
-                yield child
-
-    @staticmethod
-    def _log_changes(label, old, new):
-        newpids = {p.pid for p in new}
-        oldpids = {p.pid for p in old}
-        added = [p for p in new if p.pid not in oldpids]
-        removed = [p for p in old if p.pid not in newpids]
-        if added:
-            logger.debug("New %s processes: %s", label, ', '.join(map(str, added)))
-        if removed:
-            logger.debug("Dead %s processes: %s", label, ', '.join(map(str, removed)))
-
-    def refresh_process_status(self):
-        """Return status of a process"""
-        old_children, self.children = self.children, []
-        old_ignored_children, self.ignored_children = self.ignored_children, []
-
-        for child in self.iter_children(Process(os.getpid())):
-            if child.state == 'Z':  # should never happen anymore...
-                logger.debug("Unexpected zombie process %s", child)
-                try:
-                    os.wait3(os.WNOHANG)
-                except ChildProcessError:
-                    pass
+    def iterate_monitored_processes(self):
+        for child in Process(os.getpid()).iter_children():
+            if child.state == 'Z':
                 continue
 
             if (
@@ -109,11 +76,15 @@ def refresh_process_status(self):
                     and child.name in self.exclude_processes
                     and child.name not in self.include_processes
             ):
-                self.ignored_children.append(child)
+                pass
             else:
-                self.children.append(child)
+                yield child
 
-        self._log_changes('ignored', old_ignored_children, self.ignored_children)
-        self._log_changes('monitored', old_children, self.children)
+    def iterate_all_processes(self):
+        return Process(os.getpid()).iter_children()
 
-        return len(self.children) > 0
+    def is_game_alive(self):
+        "Returns whether at least one nonexcluded process exists"
+        for child in self.iterate_monitored_processes():
+            return True
+        return False
diff --git a/lutris/util/process.py b/lutris/util/process.py
--- a/lutris/util/process.py
+++ b/lutris/util/process.py
@@ -94,3 +94,9 @@ def children(self):
             for child_pid in self.get_children_pids_of_thread(tid):
                 _children.append(Process(child_pid))
         return _children
+
+    def iter_children(self):
+        """Iterator that yields all the children of a process"""
+        for child in self.children:
+            yield child
+            yield from child.iter_children()


Test patch: