Linux-Befehle

So führen Sie Linux-Befehle und -Skripte automatisch bei einem Systemneustart aus

So führen Sie Linux-Befehle und -Skripte automatisch bei einem Systemneustart aus
Das automatische Ausführen von Apps und Skripts beim Start kann nützlich sein, um allgemeine Startaufgaben und -ereignisse zu automatisieren. In diesem Artikel werden einige Methoden erläutert, die zum Starten von Apps und Skripten bei einem Neustart oder einer neuen Anmeldung verwendet werden können.

Startup-Anwendungen

Ubuntu und andere GNOME-basierte Distributionen enthalten eine Anwendung namens "Startup Applications". Es kann zum Verwalten von Apps und Skripten verwendet werden, die bei einem neuen Systemneustart oder einer neuen Anmeldung ausgeführt werden.

Starten Sie die App „Startup Applications“ aus dem Anwendungs-Launcher und klicken Sie auf die Schaltfläche „Add“, um einen neuen Eintrag hinzuzufügen.

Füllen Sie die Felder „Name“ und „Befehl“ nach Ihren Bedürfnissen aus und klicken Sie dann auf die Schaltfläche „Hinzufügen“, um die Erstellung eines neuen Eintrags abzuschließen. Der im Screenshot unten erstellte Eintrag sendet bei jedem Neustart / Login eine "Make a Backup"-Erinnerung als Systembenachrichtigung. Sie können es durch Ihren eigenen Befehl oder den vollständigen Pfad Ihres Bash-Skripts ersetzen replace. Sie können auch alle vorhandenen Systembefehle oder ausführbaren Dateien verwenden, die sich normalerweise in verschiedenen „bin“-Ordnern im Dateisystem befinden.

Wie oben erwähnt, wird bei jedem Neustart eine Backup-Erinnerung angezeigt.

Systemd

Systemd ist ein Daemon- und Service-Manager, der verschiedene Dienstprogramme zum Verwalten von Systemprozessen und Betriebssystemkomponenten enthält. In seiner vereinfachten Form wird es normalerweise verwendet, um Dienste in einem neuen Boot-Zyklus zu starten und zu beenden.

Systemd kann verwendet werden, um eine App automatisch zu starten oder ein Skript bei einem Neustart auszuführen. Um dieselbe Backup-Erinnerungsbenachrichtigung wie oben beschrieben zu erstellen, müssen Sie zuerst die erforderlichen Ordner und Dateien erstellen, indem Sie die folgenden Befehle ausführen:

$ mkdir -p ~/.config/systemd/user
$nano ~/.config/systemd/user/backup_reminder.Bedienung

Ersetzen Sie „nano“ durch den Befehl Ihres bevorzugten Texteditors. Ersetzen Sie „backup_reminder“ durch einen anderen Namen, den Sie bevorzugen.

Fügen Sie den folgenden Code in die backup_reminder ein.service-Datei, die mit dem obigen Befehl erstellt wurde.

[Einheit]
Description=Sendet bei jedem Neustart eine Backup-Erinnerung
PartOf=Grafik-Sitzung.Ziel
[Bedienung]
ExecStart=bash -c 'Schlaf 10; benachrichtigen-senden "Erstelle ein Backup"'
Typ=oneshot
[Installieren]
WantedBy=graphical-session.Ziel

Der obige Code ist ziemlich einfach. Es sendet 10 Sekunden nach dem Laden der grafischen Sitzung eine Benachrichtigung „Make a Backup“ (einmal bei jedem Neustart oder Login).

Führen Sie die folgenden Befehle aus, um den Dienst zu aktivieren, damit er bei jedem Neustart automatisch ausgeführt werden kann.

$ chmod 644 ~/.config/systemd/user/backup_reminder.Bedienung
$ systemctl --user enable backup_reminder.Bedienung
$ systemctl --user daemon-reload
$ Neustart

Dies ist nur ein einfaches Beispiel für die Ausführung eines grundlegenden Befehls beim Booten mit systemd. Sie können auch erweiterte Dienste mit mehreren Bedingungen und mehreren Befehlen erstellen. Weitere Informationen finden Sie auf der Systemd-Manpage, indem Sie den folgenden Befehl ausführen:

$ man systemd

Beachten Sie, dass in diesem Beispiel das Erstellen eines neuen Dienstes erläutert wird, der keinen Root-Zugriff erfordert und für das automatische Starten von Apps geeignet ist, die keine Root-Berechtigungen benötigen. Wenn Sie Skripte, die Root-Zugriff benötigen, automatisch starten möchten, müssen Sie einen neuen systemd-Dienst im Verzeichnis „/etc/systemd/system“ anstelle von „~/“ erstellen.config/systemd/user“ und lassen Sie den Schalter „-user“ in den oben genannten Befehlen weg.

Cron-Job

Cron ist ein Tool, das in regelmäßigen Abständen geplante Aufgaben gemäß den vom Benutzer angegebenen Bedingungen ausführen kann. Diese geplanten Jobs werden in Crontab in einem vordefinierten Format erstellt. Einfach ausgedrückt teilt Crontab Cron mit, welche Jobs zu welchem ​​Zeitpunkt ausgeführt werden sollen.

Wie systemd können crontab-Jobs verwendet werden, um Apps zu starten und Skripte beim Booten automatisch auszuführen. Führen Sie den folgenden Befehl aus, um einen neuen Cron-Job hinzuzufügen:

$crontab -e

Fügen Sie am Ende der Textdatei die folgenden Zeilen hinzu (startet das GNOME-Terminal automatisch bei jedem Neustart):

SHELL=/bin/bash
@reboot sleep 30 && DISPLAY=:0 gnome-terminal

Sie können Ihren eigenen Befehl verwenden oder den vollständigen Pfad zu einem Shell-Skript angeben.

Beachten Sie, dass cron im Gegensatz zu systemd nicht erkennen kann, ob eine grafische Sitzung geladen wurde oder nicht. Sie müssen eine geschätzte Wartezeit bis zum Laden des X-Servers und eine Anzeigekennung angeben. Sie können Ihre Anzeige-ID erfahren, indem Sie den folgenden Befehl ausführen:

$ echo $DISPLAY

Die Verzögerung vor der Ausführung des Befehls oder Skripts hängt von Ihrer Systemkonfiguration und der Bootzeit ab.

Rc.lokal

Eine andere Methode zum Ausführen von Skripten und Befehlen beim Start ist die Verwendung von „rc“.lokale“ Datei. Beachten Sie, dass ich in meinen Tests die Skriptausführung nicht verschieben konnte, bis die grafische Sitzung live war. Das Hinzufügen einer Schlafverzögerung führte zu einer Verzögerung bei der Anzeige des Anmeldebildschirms selbst. Aus diesem Grund hatte ich keinen Erfolg beim Ausführen von grafischen Apps beim Start mit rc.lokale Datei. rc bearbeiten.local erfordert im Gegensatz zu allen anderen oben erläuterten Beispielen auch Root-Zugriff.

Um Befehle / Skripte zu rc . hinzuzufügen.lokale Datei, führen Sie den folgenden Befehl aus (erstellt ein neues rc.lokale Datei, wenn sie nicht existiert):

$ sudo nano /etc/rc.lokal

Fügen Sie Ihre Befehle zwischen "#! /bin/bash“ und „exit 0“, wie unten gezeigt:

#! /bin/bash
Pfad/zu/mein_Skript.Sch
Ausgang 0

Mach rc.lokale ausführbare Datei, indem Sie den folgenden Befehl ausführen:

$ sudo chmod +x /etc/rc.lokal

Starten Sie einfach neu, damit das Startskript wirksam wird.

Fazit

Dies sind einige Methoden, die verwendet werden können, um Skripte und Apps beim Start automatisch auszuführen. Wenn Sie Skripte ausführen möchten, die keinen Root-Zugriff erfordern, empfehle ich die Verwendung der GUI-App „Startup Applications“. Wenn Sie Apps und Skripte mit Root-Zugriff ausführen möchten, empfehle ich Ihnen, einen systemd-Dienst auf Systemebene zu erstellen.

Über den Autor

Nitesh Kumar

Ich bin ein freiberuflicher Softwareentwickler und Content-Autor, der Linux, Open-Source-Software und die Free-Software-Community liebt.

Alle Beiträge anzeigen
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...