Carlo Zancanaro skribis: > From be442ea64e4fd8e235378a5f04d38296c0af9cf3 Mon Sep 17 00:00:00 2001 > From: Carlo Zancanaro > Date: Wed, 21 Feb 2018 22:57:59 +1100 > Subject: [PATCH] Poll every 0.5s to find dead forked services if prctl fails. > > * modules/shepherd.scm (open-server-socket): Set socket to be > non-blocking. > (main): If we are unable to use prctl/PR_SET_CHILD_SUBREAPER, then poll for > service processes between client connections, or every 0.5 seconds. > * modules/shepherd/service.scm (fork+exec-command): Install handle-SIGCHLD as > signal handler. > (respawn-service): Separate logic for respawning services from handling > SIGCHLD. > (handle-SIGCHLD, check-for-dead-services): New exported procedures. > * tests/basic.sh, tests/status-sexp.sh: Replace constant integers with > symbols. > * doc/shepherd.texi (Slots of services): Add note about service running slot > being a process id. Awesome. Applied with minor cosmetic changes (see below). Thank you! Ludo’.