[systemd-devel] systemd restart patch

Cristian Patrascu Cristian.Patrascu at windriver.com
Thu Feb 3 02:55:16 PST 2011


In the company I work for, I must have/implement the following 
functionality of a systemd service:
- when a service stops with an exit code not 0, that is when it fails, 
it must be restarted. This is implemented, by using the option 
*Restart=on-failure*. Eventually, also *RestartSec=* can be used.
- when the service is configured to restart itself (as above), the 
number of restarts count must be limited (example: 3 restart retries). 
At the moment, this can't be done, there aren't any options implemented 
for this situation, the service keeps restarting forever.
- when a service is configured to restart itself on failure (as above), 
after the restart retries expire (example: after 3 restart retries), 
then if the service is still failed, some action could be taken 
(optionally), to run a command (something like ExecStopPost=). At the 
moment, this also can't be done.

So, for these last two features I created a patch, which adds two more 
options for a .service :
- *RestartRetries=n* (where n is the number of restart retries)
- *ExecPostRestarts=/some/cmd* (where the command "*/some/cmd*" will be 
executed after restart retries are finished).

The systemd's behavior is modified as follows:
- when service is in *auto-restart* state, each restart attempt is 
counted until the maximum restart retries are reached (specified via 
*RestartRetries* option);
- when max. restart retries are reached and the option 
*ExecPostRestarts* isn't specified, the service enters *dead* state;
- if a command is specified in *ExecPostRestarts* option, then after 
*auto-restart* state (when max. restart retries are reached) the service 
will enter a new state *post-auto-restart* and will remain in this state 
as long as the specified command is executing;
- when post-auto-restart command ends execution, the service enters 
*dead* state.

We would appreciate if you can add this patch in your development tree. 
Currently this patch is made for systemd-16. If you agree we will send 
you the patch after following an IP review in our company.



Thanks in advance,
Cristian Patrascu
Wind River

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20110203/fe9d5c03/attachment.htm>


More information about the systemd-devel mailing list