diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-08-22 05:02:33 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-08-22 05:02:33 +0200 |
commit | 8d1b002a2e389e79a2414491523de549783abf73 (patch) | |
tree | b428ecea68a996bddf079336d1f669562f5bcd59 | |
parent | 99add6fd0b8f4307ed79256e25f38da318e795c4 (diff) |
service: introduce a proper service result if the start limit is hit
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | src/core/service.c | 5 | ||||
-rw-r--r-- | src/core/service.h | 1 |
3 files changed, 4 insertions, 6 deletions
@@ -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 diff --git a/src/core/service.c b/src/core/service.c index f540752b61..807b34267f 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -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); diff --git a/src/core/service.h b/src/core/service.h index 2a4dc30d0b..d1e53bf727 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -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; |