"exec /sbin/init" does not use inittab

Alexander Kriegisch Alexander at Kriegisch.name
Thu Oct 11 06:11:05 UTC 2007


Hi!

I use kernel_args init=/my/script on my embedded platform with BB 1.7.2.
Thus, my Ash shell script (sets up an NFS root) replaces init, but
explicitly calls it when done:
>   exec /sbin/init
Thus, init gets PID 1 and starts working on /etc/init.d/rc.S (*not* rcS,
but rc.S).

My /etc/inittab looks like this:

> ::restart:/sbin/init
> 
> # Start mini_fo before rc.S
> ::sysinit:/etc/init.d/rc.mini_fo
> ::sysinit:/etc/init.d/rc.S
> 
> # Start an "askfirst" shell on the console
> ttyS0::askfirst:-/bin/sh
> 
> # Stuff to do before rebooting
> ::shutdown:/bin/sh -c /var/post_install

The thing is, rc.mini_fo is not called. It would exit quickly and do
nothing but print some messages anyway in the case of an NFS root, but
at least it should be called. As soon as I decativate my kernel_args
'init=...' parameter, rc.mini_fo is called normally. The difference is
that in the former case init is called by the kernel, in the latter by
my custom init shell script.

Well, I am not an expert here and would like to know how I can make it
work. I read this in the description of init:

> This version of init is designed to be run only by the kernel.

But I do not know the implications of this warning. Init has several
menuconfig options which are currently defined as follows:

> [*] init
>      [ ]   debugging aid
>      [*]   Support reading an inittab file
>      [ ]   Support running commands with a controlling-tty
>      [*]   Enable init to write to syslog
>      [ ]   Be _extra_ quiet on boot
>      [ ]   Support dumping core for child processes (debugging only)
>      [ ]   Support running init from within an initrd (not initramfs)
>      [*] poweroff, halt, and reboot
>      [ ] mesg

Regards
-- 
Alexander Kriegisch



More information about the busybox mailing list