This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history] / sbin / init.chmr / README
This is a new version of /sbin/init, with many features:
already implemented and working:
o modular design (separate function for each state)
o error logging via syslog()
o extensive debugging facilities (compile time option)
o detection of failing getty processes (exit status and runtime)
o if a getty process is failing repeatedly, retry it after
configurable time intervals.
o recovery from non-fatal errors such as out of memory or
fork failed.
o a manual page
o most parameters can be changed from a configuration file (default
startup state, retry time etc)
o some system parameters can also be set from the configuration file
(default process limits, initial environment variables)
o fully compatible with old init (if config file does not exist)
planned but not yet implemented:
o redirecting error messages to stderr instead of syslog if init
is executed by the user (Syntaxcheck)
o support for ty_window (for window systems)
o maybe sometime support for /etc/inittab
What you can define (Add "CFLAGS += -D..." to the Makefile):
-DDEBUG enables debugging facilities:
you can increment debug level with debug keyword in
config file, -d option, or by sending SIGUSR1 to init.
SIGUSR2 sets debug level to 0.
-DUNTRUSTED debugging code: on SIGINT it execs /sbin/init.ori
(do this only in singleuser mode !)
-DCONFIGURE on startup (and when requested), read /etc/init.conf
and set parameters in it.
-DFAKE_SYSLOG do not use syslog, but write to /dev/console.
This makes it MUCH smaller !
-DSMALL do not use perror, but write error codes.
Makes it even smaller, but requires -DFAKE_SYSLOG.
For the floppy version, compile this with -DFAKE_SYSLOG -DSMALL. If compiled
with gcc1, it is not bigger than the original init (20k).
If you want to use CONFIGURE, you also have to copy init.conf to /etc .
I'm interested in any feedback you have !
Christoph Robitschko
chmr@edvz.tu-graz.ac.at