On Mon, 2016-11-07 at 09:53 +0100, Ludovic Courtès wrote: > Hi, > > Carlo Zancanaro <ca...@zancanaro.id.au> skribis: > > > I've had problems with Shepherd and its daemonize action. If I run > > daemonize (as the first thing when Shepherd starts) then it fails to handle > > signals from child processes. > > Could it be that you invoke the ‘daemonize’ action after respawnable > processes have been started? The manual has this caveat (info > "(shepherd) The root and unknown services"): > > ‘daemonize’ > Fork and go into the background. This should be called before > respawnable services are started, as otherwise we would not get the > ‘SIGCHLD’ signals when they terminate. > > HTH, > Ludo’.
Update: I'm no longer making any use of the daemonize method, instead simply running as a detached process: `( shepherd & )' at a bash command-line. It works perfectly well now, reaping (and restarting) dead children as necessary. Another problem I see though is that if there are jobs which depend on one which has died, those jobs are not recycled. Probably this has not been considered yet, and I'm thinking that a bit more thought needs to go into the overall design of this thing... (I guess this also ties in with the concepts of run-levels and hot-re-configuring the shepherd core). Wish I had time to look into it. Tuppence, /Dale