Bisher habe ich immer sysvinit genommen, weil das eine der beiden Abhängigkeiten von init ist.
Nun aber überlege ich immer mehr, auch mal sinit, das init des suckless-Projekts, auszuprobieren. Der Link zur Projektseite: https://core.suckless.org/sinit und die git-Seite: https://git.suckless.org/sinit/
So wie ich den Code verstehe, läuft das so, dass sinit das Starten und Beenden der Dienste an die in config.def.h gelisteten Programme weitergibt:
Code: Alles auswählen
/* See LICENSE file for copyright and license details. */
static char *const rcinitcmd[] = { "/bin/rc.init", NULL };
static char *const rcrebootcmd[] = { "/bin/rc.shutdown", "reboot", NULL };
static char *const rcpoweroffcmd[] = { "/bin/rc.shutdown", "poweroff", NULL };
Diese könnten dann vielleicht in etwa so aussehen (zu den entsprechenden runlevel-Nummern siehe "man init"*)?
/bin/rc.init:
1. nachschauen in Konfigurations-Datei /etc/init.conf (oder so ähnlich), in welches runlevel zu booten ist
2. alle scripte in /etc/rcS.d/ ausführen
3. alle scripte in /etc/rc"$runlevel".d/ ausführen
4. rc.local ausführen (ggf. nur unter der Bedingung, dass $runlevel ein bestimmter Wert ist)
Das Starten der getty-Prozesse könnte dann in ein entsprechendes init-Script unter /etc/init.d/, welches nach /etc/rc[1-5].d/ verlinkt würde.
/bin/rc.shutdown könnte vielleicht so aussehen?
- wenn argument=poweroff:
1. alle scripte in /etc/rc0.d/ ausführen
- wenn argument=reboot:
1. alle scripte in /etc/rc6.d/ ausführen
Was meint ihr?
*Wer nicht sysvinit-core installiert hat, hat die falsche manpage. Hier der Link zur init-manpage von sysvinit-core: https://manpages.debian.org/stretch/sys ... .8.en.html