GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie Befehle/Skripte während des Neustarts oder Starts automatisch aus

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:

  1. a) der Cron-Daemon muss laufen (was unter normalen Umständen der Fall ist), und
  2. 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.

script1.sh:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
script2.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!


Linux
  1. Wie schreibe ich ein Startskript für Systemd?

  2. Wie führe ich Befehle in Gnuplot mit Shell-Skript aus?

  3. So führen Sie Python-Skripte von der Shell aus

  4. So führen Sie ein Shell-Skript beim Start aus

  5. Wie führe ich ein Python-Skript von Java aus aus?

So führen Sie Linux-Befehle auf einem Remote-System über SSH aus

So führen Sie Linux-Startskripts und -Befehle automatisch aus

So erstellen Sie Shell-Skripte

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wie kann man Bash-Skripte in Vim hervorheben?

Wie führt man ein Bash-Skript aus?