diff --git a/hyprtester/src/tests/main/misc.cpp b/hyprtester/src/tests/main/misc.cpp index 7b42af13..d5865f20 100644 --- a/hyprtester/src/tests/main/misc.cpp +++ b/hyprtester/src/tests/main/misc.cpp @@ -194,6 +194,10 @@ static bool test() { EXPECT_CONTAINS(str, "fullscreen: 2"); } + // Ensure that the process autostarted in the config does not + // become a zombie even if it terminates very quickly. + EXPECT(Tests::execAndGet("pgrep -f 'sleep 0'").empty(), true); + // kill all NLog::log("{}Killing all windows", Colors::YELLOW); Tests::killAllWindows(); diff --git a/hyprtester/test.conf b/hyprtester/test.conf index a606aa11..ab598719 100644 --- a/hyprtester/test.conf +++ b/hyprtester/test.conf @@ -46,6 +46,7 @@ $menu = wofi --show drun # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: +exec-once = sleep 0 # Terminates very quickly # exec-once = $terminal # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox diff --git a/src/main.cpp b/src/main.cpp index b0f8b66c..2574d822 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -187,6 +187,8 @@ int main(int argc, char** argv) { return 1; } + reapZombieChildrenAutomatically(); + g_pCompositor->initServer(socketName, socketFd); if (verifyConfig) @@ -195,8 +197,6 @@ int main(int argc, char** argv) { if (!envEnabled("HYPRLAND_NO_RT")) NInit::gainRealTime(); - reapZombieChildrenAutomatically(); - Debug::log(LOG, "Hyprland init finished."); // If all's good to go, start.