service: kill stubborn services, wait before restart

Add support for registering callbacks to be called after a given
timeout.

Use this to implement forceful termination of services that refuse to
terminate upon receiving a SIGTERM. If the service PID is not collected
within 3 seconds, send a SIGKILL to it.

Also, rework restarting of crashing services. When a service crashes for
the first time, try to restart it immediately. If it crashes again, wait
a few seconds before trying again. Just as before, if it continues to
crash, block the service.
This commit is contained in:
Tobias Waldekranz committed 2016-09-13 20:26:28 +02:00
1 parent b4f385d2e0
commit 10b72f1d7f
5 files changed
+146 -12

No files matched your search

+3
View File
@@ -443,6 +443,9 @@ char *svc_status(svc_t *svc)
case SVC_BLOCK_INETD_BUSY:
return "busy";
case SVC_BLOCK_RESTARTING:
return "restart";
}
case SVC_DONE_STATE: