[systemd-devel] [PATCH] service: kill processes with SIGKILL on watchdog failure

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Jun 6 06:50:46 PDT 2013


On Thu, Jun 06, 2013 at 09:13:48AM +0200, Lennart Poettering wrote:
> On Tue, 21.05.13 15:27, Zbigniew Jędrzejewski-Szmek (zbyszek at in.waw.pl) wrote:
> 
> > 
> > On Sun, May 19, 2013 at 12:10:55PM +0200, Michael Olbrich wrote:
> > > Just calling service_enter_dead() does not kill any processes.
> > > As a result, the old process may still be running when the new one is
> > > started.
> > > After a watchdog failure the service is in an undefined state.
> > > Using the normal shutdown mechanism makes no sense. Instead all processes
> > > are just killed and the service can try to restart.
> > Applied.
> > 
> > (I thought for a while whether we should allow normal shutdown for
> > watchdog-failed services. Sometimes that could be useful, but for
> > the majority of cases just killing the process is probably the right
> > option.)
> 
> Hmm, I am pretty sure we should still execute the ExecStopPost=
> commands, since their purpose might be to clean up things. If the
> watchdog timeout is hit we can assume that a clean shutdown won't work,
> so we shouldn't try to execute ExecStop= or try SIGTERM and go directly
> to SIGKILL, but ExecStopPre= afterwards we should execute, I am pretty
> sure.
> 
> I have changed git now to enter STOP_SIGKILL rather than FINAL_SIGKILL
> hence. 
> 
> I hope this makes sense?
Yeah, that seems like a better choice. We should make sure to document
this in the man pages at some point.

Zbyszek


More information about the systemd-devel mailing list