summaryrefslogtreecommitdiff
path: root/src/service.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-02-03 02:01:35 +0100
committerLennart Poettering <lennart@poettering.net>2012-02-03 05:06:03 +0100
commitf42806df7de0f4669c1296ab66a7f8d8784dd0f2 (patch)
tree1370ad4cae0c1509aefdff30e4ebcd443bb010ed /src/service.h
parent680a1dbc354b2f437b4e06e27d4c43217977efdf (diff)
service: replace "failure" boolean by enum, and export it
This should give admins more useful hints why a service failed.
Diffstat (limited to 'src/service.h')
-rw-r--r--src/service.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/service.h b/src/service.h
index dbae68b80a..b1e8b90470 100644
--- a/src/service.h
+++ b/src/service.h
@@ -88,6 +88,17 @@ typedef enum NotifyAccess {
_NOTIFY_ACCESS_INVALID = -1
} NotifyAccess;
+typedef enum ServiceResult {
+ SERVICE_SUCCESS,
+ SERVICE_FAILURE_RESOURCES,
+ SERVICE_FAILURE_TIMEOUT,
+ SERVICE_FAILURE_EXIT_CODE,
+ SERVICE_FAILURE_SIGNAL,
+ SERVICE_FAILURE_CORE_DUMP,
+ _SERVICE_RESULT_MAX,
+ _SERVICE_RESULT_INVALID = -1
+} ServiceResult;
+
struct Service {
Unit meta;
@@ -132,8 +143,8 @@ struct Service {
bool guess_main_pid;
/* If we shut down, remember why */
- bool failure:1;
- bool reload_failure:1;
+ ServiceResult result;
+ ServiceResult reload_result;
bool main_pid_known:1;
bool main_pid_alien:1;
@@ -186,4 +197,7 @@ ServiceExecCommand service_exec_command_from_string(const char *s);
const char* notify_access_to_string(NotifyAccess i);
NotifyAccess notify_access_from_string(const char *s);
+const char* service_result_to_string(ServiceResult i);
+ServiceResult service_result_from_string(const char *s);
+
#endif