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

Lennart Poettering lennart at poettering.net
Thu Jun 6 00:13:48 PDT 2013


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?

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list