init.d-Skript wird nicht ausgeführt?

init.d-Skript wird nicht ausgeführt?

Ich habe ein Skript auf Ubuntu, das ich in /etc/init.d abgelegt habe. Es hat 0755-Berechtigungen und ich kann es sowohl manuell ausführen als auch als Quelle verwenden, mit guten Ergebnissen. Ich habe sowohl in /etc/rc3.d als auch in /etc/rc5.d symbolische Links, beide mit dem Namen S01raid, die beide auf das init.d-Skript verweisen. Wenn ich die Maschine jedoch neu starte, scheint das Skript nicht zu laufen. Ich sehe weder, dass das Array gemountet ist, noch dass es läuft, noch sehe ich, dass der Monitor-Daemon auf der ps -A-Ausgabe läuft.

Was übersehe ich hier?

Skriptinhalt:

#!/bin/sh -e
modprobe raid5
mdadm --assemble --scan
mdadm --monitor --scan --daemonize --delay 120 --program /etc/mdadm/scram.sh
mount -t xfs /dev/md0 /mnt/

Antwort1

Ich würde vorschlagen, dass Sie die Standardtools verwenden, um beim Start ein Skript auszuführen.

Ansehendiese Antwortzu einer ähnlichen Frage, in der ich die zu befolgenden Schritte aufgelistet habe. Außerdem würde ich, wie von einem anderen Benutzer zu dieser Frage erwähnt, zu Testzwecken die Befehle einfach in /etc/rc.local vor „exit 0“ platzieren.

Sie müssen außerdem sicherstellen, dass alle Dienste, von denen dies abhängt, bereits gestartet sind, wenn dies ausgeführt wird. Überprüfen Sie die Protokolle in /var/log auf Fehlermeldungen.

Antwort2

„S01“ bedeutet, dass es ziemlich früh im Bootvorgang ausgeführt wird. Als Erstes würde ich sicherstellen, dass es keine Dinge gibt, die zuerst ausgeführt werden müssen, die aber später ausgeführt werden (höhere Nummern haben).

Auf meinem Ubuntu-System ist sysklogd S10 und mdadm S25. Stellen Sie es also zumindest höher ein, damit Sie sehen können, ob es etwas protokolliert.

verwandte Informationen