Führen Sie den Befehl beim Booten als root aus


9

Ich muss beim Booten ein Bash-Skript als Superuser in Xubuntu ausführen. Ich weiß nicht, wo ich anfangen soll. Ich muss etwas tun, das in einem Arch Linux-Handbuch beschrieben ist. Dieser Leitfaden sagt genau:

Fügen Sie am Ende der Datei Folgendes hinzu: /etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

Aber ich habe nicht /etc/rc.sysinitund /etc/rc.d/in Xubuntu. Ich bin sicher, es gibt gleichwertige, oder?

Antworten:


9

Die gewünschte Datei ist /etc/rc.local. Dieses Skript wird in der Nähe oder am Ende des Startvorgangs ausgeführt. Somit sollte zu diesem Zeitpunkt alles in Ordnung sein.

Wie @ bodhi.zazen jedoch betonte, ist Upstart möglicherweise die beste Option für Sie. Schau es dir an .

Hinweis 1 : In 15.04 und höher verwendet Ubuntu systemdund nicht Upstart. Wenn Sie einen Serviceansatz wählen möchten, lesen Sie diese Antwort hier von @muru

Hinweis 2 : In 16.10 gibt es /etc/rc.localstandardmäßig keine , aber wenn Sie es erstellen und ausführbar machen ( sudo chmod u+x /etc/rc.local), funktioniert es, da es einen systemd-Dienst gibt, der es abruft, falls vorhanden. Vergessen Sie nicht, exit 0am Ende der Datei eine Zeile mit zu setzen , um zu verhindern, dass fehlgeschlagene Befehle den gesamten Startvorgang zum Stillstand bringen.


Also muss ich nur diesen Code hier einfügen? Im Moment enthält diese Datei nur exit 0. Und wenn ich beim Booten fragen kann, ob rc.localdas Dateisystem bereit ist, damit es auch irgendwo ein Protokoll für den Befehl schreiben kann, den ich ausführen möchte?
Lorenzo-s

Es hört sich so an, als würden Sie versuchen, ein Boot-Skript (Init) auszuführen. Ubuntu verwendet Upstart. rc.local führt beim Booten einen Befehl oder eine Reihe von Befehlen aus und ist möglicherweise die beste Option. Was versuchst du genau zu tun?
Panther

@ Lorenzo-s: Siehe meine Bearbeitung.
Scott Severance

Sie können diese Antwort auch hilfreich finden: askubuntu.com/a/20347/3940
Takkat

1
Ok, ich habe den Wechsel my_scriptvon /usr/local/binzu gelöst /usr/bin. Ich bin auch in der Lage Protokoll speichern in /var/logVerwendung my_script &>> /var/log/my_script. Vielen Dank.
Lorenzo-s
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.