[systemd-devel] systemd restart patch

Cristian Patrascu Cristian.Patrascu at windriver.com
Mon Feb 7 00:01:50 PST 2011


On 02/03/2011 11:19 PM, Michael Biebl wrote:
> 2011/2/3 Tomasz Torcz<tomek at pipebreaker.pl>:
>> On Thu, Feb 03, 2011 at 09:35:55PM +0100, Michael Biebl wrote:
>>> ExecStartOnFailure=/some/cmd (send an email or what not)
>>   Isn't “OnFailure=send-email-to-admin.service” sufficent?
> Having to use a service file for this use case is imho cumbersome,
> especially since you can't pass information to that service afaik,
> e.g. via env variables.
> So this send-email-to-admin.service doesn't know which service it was,
> that failed and its last status code. Or am I misinformed here?
>
> Also, does OnFailure= work as I described with regard to Restart=on-failure?
>
> Michael
On 02/03/2011 10:35 PM, Michael Biebl wrote:
> ExecStartOnFailure=/some/cmd (send an email or what not)
>
> If Restart=on-failure is not set, this command is executed when the
> starting the service has failed.

2011/2/3 Cristian Patrascu <Cristian.Patrascu at windriver.com>:
> - RestartRetries=n (where n is the number of restart retries)

Using "Restart=on-failure" and "OnFailure=some-other.service",  the 
specified service will be started for every restart that exits with 
fail, of current service.

But we want to execute a command only after a service has already failed 
"n" times. So we must have the following use-case:
- if "Restart=" is not set : suggestion regarding ExecStartOnFailure 
should work fine (command will be executed when service fails);
- if "Restart=" is set to:
         - "on-success" or "always": the service will be restarted as 
long as it exits with success (ExecStartOnFailure not executed). But if 
at any moment the service exits with failed, then the service should be 
given "n" chances to be restarted and exit with success. If after a 
restart retry (less than "n") the service exits with success, the 
procedure repeats. But if "n" restarts have happened and the service 
still failed, then the "ExecStartOnFailure" should be executed.
         - "on-failed": the service will only be restarted when failed, 
and then same as above, will be given "n" chances to restart and exit 
with success. When "n" restarts have happened and still exited with 
fail, executes "ExecStartOnFailure" command.

In this case, a better name for "RestartRetries" option would be 
"RestartRetriesOnFail".

So, this is the desired functionality in case these new options are set.



More information about the systemd-devel mailing list