mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
c49d89dfe0a524cfae23e73e99fa4aecb56471d8
Due to time constraints I had to revert the new libev backend to the
service, I/O and signals monitor. Employed instead is the tried and
tested signals based service monitor, with a small extension for an
additional I/O monitor using poll() for the I/O plugins to use.
Tried restoring the startx finit.conf directive on top of the service
implementation. However, it's currently not usable to run /usr/bin/startx
for any other user than root. I recommend using the examples/finit.conf
and run /usr/sbin/gdm instead.
finit.c:
New run_loop() function, replaces libev ev_run().
helpers.c:
Refactor start_process() into svc_start().
plugin.c:
Add fds[] array for use in the io_monitor() called by the
new run_loop().
signal.c:
Ignore SIGCHLD. Handled by waitpid() in svc_monitor() now,
which is called by the new run_loop().
svc.c:
svc_register(): Optional @username parsing for the command line.
svc_monitor(): Replaced libev callback with waitpid()
svc_start(): Refactored to use most of helpers.c:start_process()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Finit -- A reimplementation of the EeePC SysV init replacement "fastinit" ========================================================================= Finit is a reimplementation of the EeePC "fastinit" program based on its system calls with gaps filled with frog DNA. Finit's original purpose was to build upon the general workings of the EeePC fastinit and improve/optimize it for Xandros or alternative distributions running on the Eeepc. However, focus has now shifted to small embedded Linux systems and headless miniature servers with a need for extremely fast boot. Nevertheless, finit comes in three flavors: o finit-org is a replica of the Asus fastinit, o finit-mod is an improved drop-in replacement for fastinit, and o finit is a generic replacement for other systems. Finit-mod and finit (previously finit-alt) were much improved with patches from Metalshark. See the GitHub project's Wiki at https://github.com/troglobit/finit, or the original author's home page at http://helllabs.org/finit/ for more information. Usage scenarios --------------- 1. Provide an extremely fine tuned and fast boot on embedded systems or Linux distributions for the EeePC or other netbooks. (finit) 2. Replace the original Eeepc 702 fastinit (finit-mod) 3. Provide a reverse engineered document of the original EeePC fastinit implementation. (finit-org) Finit is distribution-specific. Currently it generates a finit-mdv executable for Mandriva 2008/2008.1 systems. Smurfy ported it to eeeXubuntu, and parts of his port have been merged to finit. Finit features -------------- Finit reads configuration information from /etc/finit.conf. See the source code for available options. Rebooting and halting --------------------- Finit handles SIGUSR1 and SIGUSR2 for reboot and halt, and listens to /dev/initctl so standard Linux reboot and halt commands should also work. Debugging --------- Add finit_debug to the kernel parameter line to enable trace messages and to run a shell after the X server.
Languages
C
84.3%
Shell
11.9%
Makefile
2.1%
M4
1.7%