Runit as init system in Debian GNU/Hurd
Hello everyone,
Now that runit works on the Hurd, I tried to use it as init system and it
worked. The output of ps is attached.
If you want to try it you need to set the profs translator by adding
mount -t proc none /proc -ocompatible
towards the top of /etc/runit/1.
To get a getty on the mach-console, I needed to set a run script and explicitly
set the translator on /dev/console. It looks like this:
#!/bin/sh
settrans -a /dev/console /hurd/term --type=device console --name=console
exec /sbin/getty 38400 console
I have not yet tried to get the hurd-console working, but this will probably
involve starting the console server (under runit supervision?), setting the
translators for the different tty and running getty on them?
Then replace init in /etc/hurd/runsystem.sysv with /sbin/runit-init (or write an
equivalent /etc/hurd/runsystem.runit and point to it using the /etc/alternatives
system).
On the topic of init systems, many will know that GNU Shepher 1.0 has been
released
(https://www.gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/),
and it is in Debian but not yet building on the hurd
(https://buildd.debian.org/status/package.php?p=shepherd).
Shepherd was initially designed as the init system for the Hurd. Any design
features that make such association advantageous?
Best regards,
João
USER PID PPID PGRP SESS LCOLL STAT TT TIME COMMAND
root 1 1 1 1 1 Sslo - 0:00.14 runit
root 2 1 1 1 1 Sp - 0:00.03 /hurd/startup root=part:1:device:hd0
root 3 2 1 1 1 D<fmo ? 0:00.09 gnumach root=part:1:device:hd0
root 4 2 1 1 1 R<mo ? 0:00.22 /hurd/proc
root 5 2 1 1 1 S<o - 0:00.04 pci-arbiter --host-priv-port=1 --device-master-port=2 --next-task=3
root 6 2 1 1 1 S<o - 0:00.24 acpi --next-task=1
root 7 8 1 1 1 S<o - 0:00.04 rumpdisk --next-task=1
root 8 2 1 1 1 S<o - 0:02.27 ext2fs --multiboot-command-line=root=part:1:device:hd0 --exec-server-task=1 -T typed part:1:device:hd0
root 9 8 1 1 1 S<o - 0:00.37 exec
root 10 2 1 1 1 S<o - 0:00.00 /hurd/auth
root 12 8 1 1 1 S<o - 0:00.08 /hurd/random --seed-file /var/lib/random-seed
root 13 8 1 1 1 S<o - 0:04.68 /hurd/term /dev/console device console
root 14 8 1 1 1 S<o - 0:00.73 /hurd/pflocal
root 20 8 1 1 1 S<o - 0:00.01 /hurd/storeio hd0s1
root 21 8 1 1 1 S<o - 0:00.00 /hurd/storeio hd0s2
root 22 1 1 1 1 S<o - 0:00.15 /hurd/procfs --compatible none
root 23 8 1 1 1 S<o - 0:00.00 /hurd/storeio --no-cache time
- 28 8 1 1 1 So - 0:00.01 /hurd/null
root 103 22 1 1 1 So - 0:00.01 /hurd/magic pid
root 105 1 1 1 1 S<o - 0:00.03 /hurd/tmpfs --nosuid --size=10% --mode=755 tmpfs
root 108 1 108 108 1 Ssfo - 0:00.09 /hurd/mach-defpager
root 122 1 1 1 1 S<o - 0:00.00 /hurd/tmpfs --noexec --nosuid --size=5242880 --mode=1777 tmpfs
root 143 8 1 1 1 S<o - 0:00.00 /hurd/proxy-defpager
root 180 8 1 1 1 So - 0:00.01 /hurd/magic --directory fd
- 215 22 1 1 1 So - 0:00.00 /hurd/mtab /
root 579 1 579 579 1 Sso - 0:00.00 runsvdir -P /etc/service log: .........................................................................................................................................................................................................................................................................................................settrans: /dev/console: Device or resource busy^Kcheck: 3: socklog-check: not found^KResource lost^K.
root 621 8 1 1 1 S<o - 0:00.00 /hurd/streamio kmsg
root 630 579 630 630 1 Sso - 0:00.00 runsv default-syslog
root 631 579 631 631 1 Sso - 0:00.01 runsv rsyslog
root 632 579 632 632 1 Sso - 0:00.00 runsv cron
root 633 579 633 633 1 Sso - 0:00.01 runsv getty-console
root 634 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 635 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 636 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 637 8 1 1 1 S<o - 0:00.01 /hurd/fifo
root 638 8 1 1 1 S<o - 0:00.01 /hurd/fifo
root 639 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 640 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 641 8 1 1 1 S<o - 0:00.00 /hurd/fifo
root 642 630 630 630 1 So - 0:00.01 sleep 6000
root 643 632 632 632 1 So - 0:00.02 cron -f
root 644 631 631 631 1 So - 0:00.01 /usr/sbin/rsyslogd -n -iNONE
root 645 633 645 645 645 Sslow co 0:00.06 -bash
root 649 1 633 633 1 S<o - 0:00.01 /hurd/term --type=device --name=console console
root 679 8 1 1 1 S<o - 0:00.01 /hurd/pfinet -6 /servers/socket/26
root 680 8 1 1 1 S<o - 0:00.14 /hurd/password
root 681 8 1 1 1 So - 0:00.00 /hurd/magic tty
root 731 645 731 645 645 S co 0:00.01 ps -ejw
Reply to: