service: introduce a proper service result if the start limit is hit

This commit is contained in:
Lennart Poettering 2012-08-22 05:02:33 +02:00
parent 99add6fd0b
commit 8d1b002a2e
3 changed files with 4 additions and 6 deletions

4
TODO
View File

@ -55,8 +55,6 @@ Features:
* enforce limits on fds openened by socket units
* proper service failure code for services which hit the restart limit
* explore multiple service instances per listening socket idea
* testing tool for socket activation: some binary that listens on a socket and passes it on using the usual socket activation protocol to some server.
@ -237,8 +235,6 @@ Features:
* Add pretty name for seats in logind
* nspawn wants dev_setup() for /dev/fd/ and friends?
* selinux: merge systemd selinux access controls (dwalsh)
* ConditionSecurity= should learn about IMA

View File

@ -2508,7 +2508,7 @@ static int service_start(Unit *u) {
/* Make sure we don't enter a busy loop of some kind. */
r = service_start_limit_test(s);
if (r < 0) {
service_notify_sockets_dead(s, true);
service_enter_dead(s, SERVICE_FAILURE_START_LIMIT, false);
return r;
}
@ -3821,7 +3821,8 @@ static const char* const service_result_table[_SERVICE_RESULT_MAX] = {
[SERVICE_FAILURE_EXIT_CODE] = "exit-code",
[SERVICE_FAILURE_SIGNAL] = "signal",
[SERVICE_FAILURE_CORE_DUMP] = "core-dump",
[SERVICE_FAILURE_WATCHDOG] = "watchdog"
[SERVICE_FAILURE_WATCHDOG] = "watchdog",
[SERVICE_FAILURE_START_LIMIT] = "start-limit"
};
DEFINE_STRING_TABLE_LOOKUP(service_result, ServiceResult);

View File

@ -98,6 +98,7 @@ typedef enum ServiceResult {
SERVICE_FAILURE_SIGNAL,
SERVICE_FAILURE_CORE_DUMP,
SERVICE_FAILURE_WATCHDOG,
SERVICE_FAILURE_START_LIMIT,
_SERVICE_RESULT_MAX,
_SERVICE_RESULT_INVALID = -1
} ServiceResult;