X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fservice.h;h=81401ac387ec207aee8affd26a68b08deaa7a75f;hp=d254044316fe6d0369a57f15f220ec7e49cd1c35;hb=16061c20ddd8eba9b9e1ef89149c51114a8084ce;hpb=2e22afe909cd5fa003347aa91ad15f0516e5047f diff --git a/src/service.h b/src/service.h index d25404431..81401ac38 100644 --- a/src/service.h +++ b/src/service.h @@ -58,7 +58,7 @@ typedef enum ServiceRestart { typedef enum ServiceType { SERVICE_SIMPLE, /* we fork and go on right-away (i.e. modern socket activated daemons) */ SERVICE_FORKING, /* forks by itself (i.e. traditional daemons) */ - SERVICE_FINISH, /* we fork and wait until the program finishes (i.e. programs like fsck which run and need to finish before we continue) */ + SERVICE_ONESHOT, /* we fork and wait until the program finishes (i.e. programs like fsck which run and need to finish before we continue) */ SERVICE_DBUS, /* we fork and wait until a specific D-Bus name appears on the bus */ SERVICE_NOTIFY, /* we fork and wait until a daemon sends us a ready message with sd_notify() */ _SERVICE_TYPE_MAX, @@ -90,8 +90,6 @@ struct Service { ServiceType type; ServiceRestart restart; - NotifyAccess notify_access; - /* If set we'll read the main daemon PID from this file */ char *pid_file; @@ -101,10 +99,6 @@ struct Service { ExecCommand* exec_command[_SERVICE_EXEC_COMMAND_MAX]; ExecContext exec_context; - bool permissions_start_only; - bool root_directory_start_only; - bool valid_no_process; - ServiceState state, deserialized_state; ExecStatus main_exec_status; @@ -112,20 +106,24 @@ struct Service { ExecCommand *control_command; ServiceExecCommand control_command_id; pid_t main_pid, control_pid; - bool main_pid_known:1; + + bool permissions_start_only; + bool root_directory_start_only; + bool valid_no_process; /* If we shut down, remember why */ bool failure:1; - + bool main_pid_known:1; bool bus_name_good:1; - - bool allow_restart:1; - + bool forbid_restart:1; bool got_socket_fd:1; - bool sysv_has_lsb:1; - char *sysv_path; + bool sysv_enabled:1; + + int socket_fd; int sysv_start_priority; + + char *sysv_path; char *sysv_runlevels; char *bus_name; @@ -134,10 +132,11 @@ struct Service { RateLimit ratelimit; - int socket_fd; struct Socket *socket; Watch timer_watch; + + NotifyAccess notify_access; }; extern const UnitVTable service_vtable;