chiark / gitweb /
service: add options RestartPreventExitStatus and SuccessExitStatus
[elogind.git] / src / core / service.h
index 5ad09d0acc9304b453e329be1e792db5a33fbe48..2a4dc30d0b39b1e3a748375ac5dd4487aa9086f1 100644 (file)
@@ -27,6 +27,8 @@ typedef struct Service Service;
 #include "path.h"
 #include "ratelimit.h"
 #include "service.h"
+#include "kill.h"
+#include "exit-status.h"
 
 typedef enum ServiceState {
         SERVICE_DEAD,
@@ -114,19 +116,24 @@ struct Service {
 
         ServiceType type;
         ServiceRestart restart;
+        ExitStatusSet restart_ignore_status;
+        ExitStatusSet success_status;
 
         /* If set we'll read the main daemon PID from this file */
         char *pid_file;
 
         usec_t restart_usec;
-        usec_t timeout_usec;
+        usec_t timeout_start_usec;
+        usec_t timeout_stop_usec;
 
         dual_timestamp watchdog_timestamp;
         usec_t watchdog_usec;
         Watch watchdog_watch;
 
         ExecCommand* exec_command[_SERVICE_EXEC_COMMAND_MAX];
+
         ExecContext exec_context;
+        KillContext kill_context;
 
         ServiceState state, deserialized_state;
 
@@ -163,7 +170,7 @@ struct Service {
         bool bus_name_good:1;
         bool forbid_restart:1;
         bool got_socket_fd:1;
-        bool timeout_defined:1;
+        bool start_timeout_defined:1;
 #ifdef HAVE_SYSV_COMPAT
         bool is_sysv:1;
         bool sysv_has_lsb:1;