Ich bin immer wieder fasziniert, was hinter den Kulissen passiert, wenn ich ein Linux-System starte und mich anmelde. Durch Drücken des Netzschalters auf einem Bare-Metal 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. Dasselbe gilt, wenn Sie sich abmelden und/oder das System herunterfahren.
Was dies interessanter und unterhaltsamer macht, ist die Tatsache, dass Sie das Betriebssystem bestimmte Aktionen ausführen lassen können, wenn es hochfährt 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 von der Verwendung von Bash aus als Haupt-Shell für Anmelde- und Abmeldeereignisse. Wenn Sie zufällig eine andere verwenden, funktionieren einige dieser Methoden möglicherweise nicht. Schlagen Sie im Zweifelsfall in der Dokumentation Ihrer Shell nach.
Ausführen von Linux-Skripten während des Neustarts oder Starts
Es gibt zwei herkömmliche Methoden zum Ausführen eines Befehls oder zum Ausführen von Skripten während des Starts:
Methode Nr. 1 – Verwenden Sie einen Cron-Job
Neben dem üblichen Format (Minute / Stunde / Tag des Monats / Monat / Wochentag), das häufig verwendet wird, um einen Zeitplan anzugeben, erlaubt der Cron-Scheduler auch die Verwendung von @reboot
. Diese Anweisung, gefolgt vom absoluten Pfad zum Skript, wird es beim Booten der Maschine ausführen.
Allerdings gibt es bei diesem Ansatz zwei Vorbehalte:
- a) der Cron-Daemon muss laufen (was unter normalen Umständen der Fall ist), und
- b) das Skript oder die crontab-Datei muss die Umgebungsvariablen (falls vorhanden) enthalten, die benötigt werden (siehe diesen StackOverflow-Thread für weitere Details).
Methode #2 – Verwenden Sie /etc/rc.d/rc.local
Diese Methode gilt sogar für systemd-basierte Distributionen. Damit diese Methode funktioniert, müssen Sie Ausführungsberechtigungen für /etc/rc.d/rc.local
erteilen wie folgt:
# chmod +x /etc/rc.d/rc.local
und fügen Sie Ihr Skript am Ende der Datei hinzu.
Die folgende Abbildung zeigt, wie zwei Beispielskripts ausgeführt werden (/home/gacanepa/script1.sh
und /home/gacanepa/script2.sh
) mit einem cron job und 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.txtscript2.sh:
#!/bin/bash SITE="Tecmint.com" 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
Linux-Skripte beim An- und Abmelden ausführen
Um ein Skript beim Anmelden oder Abmelden auszuführen, verwenden Sie ~.bash_profile
und ~.bash_logout
, bzw. Höchstwahrscheinlich müssen Sie die letztere Datei manuell erstellen. Fügen Sie einfach eine Zeile ein, die Ihr Skript auf die gleiche Weise wie zuvor am Ende jeder Datei aufruft, und schon können Sie loslegen.
Zusammenfassung
In diesem Artikel haben wir erklärt, wie Sie ein Skript beim Neustart, beim Anmelden und Abmelden ausführen. Wenn Ihnen andere Methoden einfallen, die wir hier hätten aufnehmen können, können Sie das Kommentarformular unten verwenden, um darauf hinzuweisen. Wir freuen uns darauf, von Ihnen zu hören!