diff --git a/src/conf.c b/src/conf.c index 3bf9f4e5..8699c628 100644 --- a/src/conf.c +++ b/src/conf.c @@ -68,6 +68,37 @@ #define BOOTSTRAP (runlevel == INIT_LEVEL) +int runlevel = INIT_LEVEL; /* Bootstrap 'S' */ +int cfglevel = RUNLEVEL; /* Fallback if no configured runlevel */ +int cmdlevel = 0; /* runlevel override from cmdline */ +int prevlevel = -1; +int debug = 0; /* debug mode from kernel cmdline */ +int rescue = 0; /* rescue mode from kernel cmdline */ +int single = 0; /* single user mode from kernel cmdline */ +int bootstrap = 1; /* set while bootstrapping (for TTYs) */ +int kerndebug = 0; /* set if /proc/sys/kernel/printk > 7 */ +int syncsec = 0; /* reboot delay */ +int wdtreboot = 0; /* reboot via watchdog, default: SOC */ +int readiness = SVC_NOTIFY_PID; +char *finit_conf= NULL; +char *finit_rcsd= NULL; +char *fstab = NULL; +char *sdown = NULL; +char *network = NULL; +char *hostname = NULL; +char *osheading = NULL; + +char *runparts = NULL; +int runparts_progress; +int runparts_sysv; + +char cgroup_current[CGROUP_NAME_SIZE]; /* cgroup.NAME sets current cgroup for a set of services */ +char cgroup_settings_current[CGROUP_SETTINGS_SIZE]; /* cgroup.system,cpu.weight:500 - cgroup settings */ +int cgroup_delegate_current; /* cgroup.system,delegate - delegation flag */ + +struct rlimit initial_rlimit[RLIMIT_NLIMITS]; +struct rlimit global_rlimit[RLIMIT_NLIMITS]; + struct conf_change { TAILQ_ENTRY(conf_change) link; char *name; diff --git a/src/conf.h b/src/conf.h index 6141dd21..80491e7b 100644 --- a/src/conf.h +++ b/src/conf.h @@ -49,9 +49,12 @@ extern char *osheading; extern int logfile_size_max; extern int logfile_count_max; +#define CGROUP_NAME_SIZE 16 +#define CGROUP_SETTINGS_SIZE 128 + extern struct rlimit global_rlimit[RLIMIT_NLIMITS]; -extern char cgroup_current[]; -extern char cgroup_settings_current[]; +extern char cgroup_current[CGROUP_NAME_SIZE]; +extern char cgroup_settings_current[CGROUP_SETTINGS_SIZE]; extern int cgroup_delegate_current; int str2rlim(char *str); diff --git a/src/finit.c b/src/finit.c index 63df48a1..96061dd7 100644 --- a/src/finit.c +++ b/src/finit.c @@ -65,6 +65,25 @@ uev_ctx_t *ctx; /* Main loop context */ svc_t *wdog; /* No watchdog by default */ char *arg0; /* Saved for setprocnm() */ +/* + * --enable-fastboot => fsck_mode: NULL => no fsck by default + * --enable-fsckfix => fsck_mode: "-f" + fsck_repair: "y" + */ +#ifdef FSCK_FIX +# ifdef FAST_BOOT +char *fsck_mode = NULL; +# else +char *fsck_mode = "-f"; +# endif +char *fsck_repair = "-y"; +#else +# ifdef FAST_BOOT +char *fsck_mode = NULL; +# else +char *fsck_mode = ""; +# endif +char *fsck_repair = "-p"; +#endif /* * Show user configured banner before service bootstrap progress diff --git a/src/legacy.c b/src/legacy.c index 1feb5ca3..d32c9e16 100644 --- a/src/legacy.c +++ b/src/legacy.c @@ -41,6 +41,7 @@ #endif #include "finit.h" #include "cond.h" +#include "conf.h" #include "devmon.h" #include "legacy.h" #include "private.h" @@ -51,66 +52,12 @@ #define BOOTSTRAP (runlevel == INIT_LEVEL) -int runlevel = INIT_LEVEL; /* Bootstrap 'S' */ -int cfglevel = RUNLEVEL; /* Fallback if no configured runlevel */ -int cmdlevel = 0; /* runlevel override from cmdline */ -int prevlevel = -1; -int debug = 0; /* debug mode from kernel cmdline */ -int rescue = 0; /* rescue mode from kernel cmdline */ -int single = 0; /* single user mode from kernel cmdline */ -int bootstrap = 1; /* set while bootstrapping (for TTYs) */ -int kerndebug = 0; /* set if /proc/sys/kernel/printk > 7 */ -int syncsec = 0; /* reboot delay */ -int wdtreboot = 0; /* reboot via watchdog, default: SOC */ -int readiness = SVC_NOTIFY_PID; -char *finit_conf= NULL; -char *finit_rcsd= NULL; -char *fstab = NULL; -char *sdown = NULL; -char *network = NULL; -char *hostname = NULL; -char *osheading = NULL; - -int logfile_size_max = 200000; /* 200 kB */ -int logfile_count_max = 5; - struct env_entry { TAILQ_ENTRY(env_entry) link; char *name; }; static TAILQ_HEAD(, env_entry) env_list = TAILQ_HEAD_INITIALIZER(env_list); -struct rlimit initial_rlimit[RLIMIT_NLIMITS]; -struct rlimit global_rlimit[RLIMIT_NLIMITS]; - -/* - * --enable-fastboot => fsck_mode: NULL => no fsck by default - * --enable-fsckfix => fsck_mode: "-f" + fsck_repair: "y" - */ -#ifdef FSCK_FIX -# ifdef FAST_BOOT -char *fsck_mode = NULL; -# else -char *fsck_mode = "-f"; -# endif -char *fsck_repair = "-y"; -#else -# ifdef FAST_BOOT -char *fsck_mode = NULL; -# else -char *fsck_mode = ""; -# endif -char *fsck_repair = "-p"; -#endif - -char *runparts = NULL; -int runparts_progress; -int runparts_sysv; - -char cgroup_current[16]; /* cgroup.NAME sets current cgroup for a set of services */ -char cgroup_settings_current[128]; /* cgroup.system,cpu.weight:500 - cgroup settings */ -int cgroup_delegate_current; /* cgroup.system,delegate - delegation flag */ - static int get_bool(char *arg, int default_value) { if (!arg) diff --git a/src/service.c b/src/service.c index 127e0099..1c51cdc0 100644 --- a/src/service.c +++ b/src/service.c @@ -66,6 +66,8 @@ #define NOTIFY_PATH "@run/finit/notify/%d" +int logfile_size_max = 200000; /* 200 kB */ +int logfile_count_max = 5; /* * run tasks block other tasks/services from starting, we track the