Website-Suche

So führen Sie Befehle/Skripts beim Neustart oder Start automatisch aus


Ich bin immer wieder fasziniert von den Dingen, die sich hinter den Kulissen abspielen, wenn ich ein Linux-System starte und mich anmelde. Durch Drücken des Netzschalters auf einem Bare-Metal-Gerät oder Starten einer virtuellen Maschine setzen Sie eine Reihe von Ereignissen in Gang, die zu einem voll funktionsfähigen System führen – manchmal in weniger als einer Minute. Das Gleiche gilt, wenn Sie sich abmelden und/oder das System herunterfahren.

Was dies noch interessanter und unterhaltsamer macht, ist die Tatsache, dass Sie das Betriebssystem bestimmte Aktionen ausführen lassen können, wenn es startet und wenn Sie sich an- oder abmelden.

In diesem distro-agnostischen Artikel werden wir die traditionellen Methoden zum Erreichen dieser Ziele unter Linux diskutieren.

Hinweis: Wir gehen davon aus, dass Bash als Haupt-Shell für Anmelde- und Abmeldeereignisse verwendet wird. Wenn Sie eine andere Methode verwenden, funktionieren einige dieser Methoden möglicherweise nicht. Sehen Sie im Zweifelsfall in der Dokumentation Ihrer Shell nach.

Ausführen von Linux-Skripten während des Neustarts oder Starts

Es gibt zwei traditionelle Methoden, um beim Start einen Befehl auszuführen oder Skripte auszuführen:

Methode Nr. 1 – Verwenden Sie einen Cron-Job

Neben dem üblichen Format (Minute/Stunde/Monatstag/Monat/Wochentag), das häufig zur Angabe eines Zeitplans verwendet wird, ermöglicht der Cron-Scheduler auch die Verwendung von @reboot. Diese Anweisung, gefolgt vom absoluten Pfad zum Skript, bewirkt, dass es beim Booten der Maschine ausgeführt wird.

Dieser Ansatz weist jedoch zwei Einschränkungen auf:

  1. a) Der Cron-Daemon muss ausgeführt werden (was unter normalen Umständen der Fall ist) und
  2. b) Das Skript oder die Crontab-Datei muss die benötigten Umgebungsvariablen (falls vorhanden) enthalten (weitere Informationen finden Sie in diesem StackOverflow-Thread).

Methode Nr. 2 – Verwenden Sie /etc/rc.d/rc.local

Diese Methode gilt auch für systemd-basierte Distributionen. Damit diese Methode funktioniert, müssen Sie /etc/rc.d/rc.local wie folgt Ausführungsberechtigungen erteilen:

chmod +x /etc/rc.d/rc.local

und fügen Sie Ihr Skript am Ende der Datei hinzu.

Das folgende Bild zeigt, wie zwei Beispielskripte (/home/gacanepa/script1.sh und /home/gacanepa/script2.sh) mit einem cron< ausgeführt werden job bzw. rc.local und ihre jeweiligen Ergebnisse.

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
#!/bin/bash
SITE="linux-console.net"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

Beachten Sie, dass beiden Skripten zuvor Ausführungsberechtigungen erteilt werden müssen:

chmod +x /home/gacanepa/script1.sh
chmod +x /home/gacanepa/script2.sh

Ausführen von Linux-Skripten beim Anmelden und Abmelden

Um ein Skript beim Anmelden oder Abmelden auszuführen, verwenden Sie ~.bash_profile bzw. ~.bash_logout. Höchstwahrscheinlich müssen Sie die letztere Datei manuell erstellen. Fügen Sie einfach wie zuvor am Ende jeder Datei eine Zeile ein, die Ihr Skript aufruft, und schon kann es losgehen.

Zusammenfassung

In diesem Artikel haben wir erklärt, wie Sie ein Skript beim Neustart, beim Anmelden und beim Abmelden ausführen. Wenn Ihnen andere Methoden einfallen, die wir hier hätten einbeziehen können, können Sie gerne das Kommentarformular unten verwenden, um darauf hinzuweisen. Wir freuen uns von Ihnen zu hören!