Hi, since a couple of days, I've started trying to integrate sysvinit in Debian/Hurd, and I got some positive results (but also some problems). My approach has been to follow what alreay been done for /libexec/runsystem, and create a new runsystem.sysv alternative; I started a first version with part of the .gnu version, just starting init at the end. The other "big change" required is the use of /sbin/{halt,reboot} of sysvinit, which currently are not installed in the hurd-i386 version because hurd already provides such executables. Furthermore, I moved the hurd console handling in an own init script, to test whether it was a feasible solution). Generally it worked this way, and I got a system which boots and shuts down/reboots (init 0/6), albeit with some hiccups (more on that later). The issues I found so far (thanks also to Guillem for the kill() hint!) are the following: - as pointed out in an investigation of Guillem some years ago[1], kill(-1, signal) as root[2] kills also the processes of the system translators; I worked around it with an `exit 0` at the top of "sendsigs" - some/most of the init scripts shipped in "initscripts" need a review of their code, especially those that do mount and fsck (although the warnings I got apparently didn't give much troubles, I even had the /run migration done!) - apparently the tty's specified in inittab are not started by init; I created a init script to startup runttys for that (although I consider it a temporary hack) What could be eventually done right now is: a) in sysvinit, reenable the installation of sbin & reboot, but with a "-sysv" suffix b) in hurd, give a "-hurd" suffix to sbin & reboot, and make them slaves of the "runsystem" alternative; the rational behind this proposal is that when using a runsystem.sysv you need to use the sysvinit halt/reboot, as the hurd counterparts are not equivalent at all I'm attaching for reference the runsystem.sysv script, and the hurd- console and runttys init scripts. With the premise that I might have got something totally wrong, what do you think about this? Feedback of any kind would be welcome. [1] http://lists.gnu.org/archive/html/bug-hurd/2006-02/msg00081.html [2] called by killall15, invoked in /etc/rc6.d/S20sendsigs (which is /etc/init.d/sendsigs) -- Pino Toscano
Attachment:
hurd-console
Description: application/shellscript
Attachment:
runsystem.sysv
Description: application/shellscript
Attachment:
runttys
Description: application/shellscript
Attachment:
signature.asc
Description: This is a digitally signed message part.