path: root/src/pies.h
diff options
authorSergey Poznyakoff <gray@gnu.org.ua>2013-01-04 14:22:24 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2013-01-04 14:22:24 +0200
commita9c18ad30ba6072ca460b2abc482374fb3c207b2 (patch)
treebd969853eaebe30e04fd8658d9ba323f6f6ff2ab /src/pies.h
parentcf14c349fad774e477a80d1c5e6572f21f17ced1 (diff)
Implement runlevel transitions.
* src/sysvinit.c: New file. * src/Makefile.am: Add new file. * src/pies.c (initdefault, dfl_level): Move to sysvinit.c (modetab): Add new modes. (inittrans): Move to sysvinit.c * src/pies.h (is_sysvinit): New macro. (dfl_level): New extern. (runlevel_match, inittrans, is_comp_wait): New protos. * src/progman.c (progman_running_p): Take into account only components. Use is_comp_wait to determine if the component should be waited for. (prog_start): Run sysvinit components only when started as init process. (runlevel_match): Move to sysvinit.c (prog_start_prerequisites): Return immediately if the component is disabled.
Diffstat (limited to 'src/pies.h')
1 files changed, 11 insertions, 2 deletions
diff --git a/src/pies.h b/src/pies.h
index 9b3ae9d..a679afd 100644
--- a/src/pies.h
+++ b/src/pies.h
@@ -145,10 +145,10 @@ enum pies_comp_mode
** Init-style components
+ pies_mark_sysvinit,
/* Start the process when the specified runlevel is entered and wait
for its termination */
- pies_comp_wait,
+ pies_comp_wait = pies_mark_sysvinit,
/* Execute the component once, when the specified runlevel is entered */
/* Execute the component during system boot. Ignore runlevel settings. */
@@ -183,6 +183,8 @@ enum pies_comp_mode
pies_comp_respawn = pies_comp_exec,
+#define is_sysvinit(m) ((m)>=pies_mark_sysvinit)
#define CF_DISABLED 0x001 /* The componenet is disabled */
#define CF_PRECIOUS 0x002 /* The component is precious (should not
be disabled) */
@@ -274,6 +276,7 @@ extern char *qotdfile;
extern int init_process;
extern char *console_device;
extern int initdefault;
+extern int dfl_level;
void register_prog (struct component *comp);
int progman_running_p (void);
@@ -445,5 +448,11 @@ struct inetd_builtin
struct inetd_builtin *inetd_builtin_lookup (const char *service, int socktype);
+/* sysvinit.c */
+int runlevel_match (struct component *comp);
+void inittrans (void);
+int is_comp_wait (struct component *comp);

Return to:

Send suggestions and report system problems to the System administrator.