diff options
Diffstat (limited to 'src/pies.h')
-rw-r--r-- | src/pies.h | 38 |
1 files changed, 23 insertions, 15 deletions
@@ -105,5 +105,5 @@ struct action char *addr; /* Addresses to notify about it. */ char *message; /* Notification mail. */ - char *command; /* Execute this command */ + char *command; /* Execute this command */ }; @@ -138,5 +138,12 @@ enum pies_comp_mode `start_action = pass' in MeTA1. */ pies_comp_pass_fd, - + + /* Components of this type runs once on program startup. Running other + components is delayed until the last startup component finishes. */ + pies_comp_startup, + + /* FIXME: Runs before program termination */ + pies_comp_shutdown, + /* ** Init-style components @@ -145,5 +152,5 @@ enum pies_comp_mode /* Start the process when the specified runlevel is entered and wait for its termination */ - pies_comp_wait = pies_mark_sysvinit, + pies_comp_wait = pies_mark_sysvinit, /* Execute the component once, when the specified runlevel is entered */ pies_comp_once, @@ -163,5 +170,5 @@ enum pies_comp_mode /* Execute the process when SIGINT is delivered, i.e. someone has pressed the Ctrl+Alt+Del combination. */ - pies_comp_ctrlaltdel, + pies_comp_ctrlaltdel, /* Execute the component when a specified ondemand runlevel is called */ pies_comp_ondemand, @@ -185,14 +192,14 @@ enum pies_comp_mode #define CF_DISABLED 0x001 /* The componenet is disabled */ #define CF_PRECIOUS 0x002 /* The component is precious (should not - be disabled) */ + be disabled) */ #define CF_WAIT 0x004 /* Wait for the component instance to - terminate. */ + terminate. */ #define CF_TCPMUX 0x008 /* A plain TCPMUX service */ #define CF_TCPMUXPLUS 0x010 /* A TCPMUX-plus service, i.e. pies - must emit a '+' response before starting - it */ + must emit a '+' response before starting + it */ #define CF_INTERNAL 0x020 /* An internal inetd service */ #define CF_SOCKENV 0x040 /* Component wants socket information in - the environment */ + the environment */ #define CF_RESOLVE 0x080 /* Resolve IP addresses */ #define CF_SIGGROUP 0x100 /* Send signals to the process group */ @@ -211,7 +218,7 @@ struct component int listidx; /* Index of the list. */ size_t arridx; /* Index of this component. */ - size_t ref_count; /* Reference count. */ + size_t ref_count; /* Reference count. */ struct prog *prog; /* Prog associated with this component. */ - + enum pies_comp_mode mode; char *tag; /* Entry tag (for diagnostics purposes) */ @@ -233,5 +240,5 @@ struct component /* For exec (init) components */ char *runlevels; - + /* For inetd components */ size_t max_rate; /* Maximum number of invocations per minute */ @@ -254,7 +261,7 @@ struct component char *max_instances_message; char *max_ip_connections_message; - + /* Redirectors: */ - int facility; /* Syslog facility. */ + int facility; /* Syslog facility. */ struct redirector redir[2]; /* Repeaters for stdout and stderr */ /* Actions to execute on various exit codes: */ @@ -335,4 +342,5 @@ int pies_reread_config (void); void register_prog (struct component *comp); +void program_init_startup (void); int progman_waiting_p (void); void progman_start (void); @@ -595,5 +603,5 @@ struct sysvinit_request #define SYSV_ACCT_RUNLEVEL 1 #define SYSV_ACCT_PROC_START 2 -#define SYSV_ACCT_PROC_STOP 3 +#define SYSV_ACCT_PROC_STOP 3 void sysvinit_acct (int what, const char *user, const char *id, pid_t pid, |