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

How Run Linux Commands



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 Skripts bei einem neuen Neustart oder einer neuen Anmeldung verwendet werden können.

Startup-Anwendungen

Ubuntu und andere GNOME-basierte Distributionen enthalten eine Anwendung, die einfach als Startup-Anwendungen bezeichnet wird. 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 Application 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 Erinnerung an Backup erstellen als Systembenachrichtigung. Sie können es durch Ihren eigenen Befehl oder durch den vollständigen Pfad Ihres Bash-Skripts ersetzen. 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/System/Benutzer
$Nano~/.config/System/Benutzer/backup_reminder.service

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

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

[Einheit]
Description=Sendet bei jedem Neustart eine Backup-Erinnerung
PartOf=graphical-session.target

[Service]
ExecStart=bash -c 'Schlaf 10; benachrichtigen-senden 'Backup erstellen''
Typ=oneshot

[Installieren]
WantedBy=graphical-session.target

Der obige Code ist ziemlich einfach. Es sendet 10 Sekunden nach dem Laden der grafischen Sitzung (einmal bei jedem Neustart oder Login) eine Benachrichtigung zum Erstellen eines Backups.

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/System/Benutzer/backup_reminder.service
$ systemctl--Benutzer aktivierenbackup_reminder.service
$ systemctl--Benutzerdaemon-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:

$MannSystem

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 erfordern. 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 des Ordners ~/.config/systemd/user erstellen und den Schalter –user in den oben genannten Befehlen weglassen.

Cron-Job

Cron ist ein Tool, das in regelmäßigen Abständen geplante Aufgaben gemäß den von einem 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-Und

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:

$rauswerfen $ANZEIGE

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

Rc.local

Eine andere Methode zum Ausführen von Skripten und Befehlen beim Start ist die Verwendung der Datei rc.local. 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 der Datei rc.local. Das Bearbeiten von rc.local erfordert im Gegensatz zu allen anderen oben erläuterten Beispielen auch Root-Zugriff.

Um Befehle / Skripte zur rc.local-Datei hinzuzufügen, führen Sie den folgenden Befehl aus (erstellt eine neue rc.local-Datei, falls sie nicht existiert):

$sudo Nano /etc/rc.local

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

#! /bin/bash
Pfad/zu/my_script.sh
Ausgang 0

Machen Sie die Datei rc.local ausführbar, indem Sie den folgenden Befehl ausführen:

$sudo chmod+ x/etc/rc.local

Starten Sie einfach neu, damit das Startskript wirksam wird.

Abschluss

Dies sind einige Methoden, mit denen Skripts und Apps beim Start automatisch ausgeführt werden können. Wenn Sie Skripte ausführen möchten, die keinen Root-Zugriff erfordern, würde ich die Verwendung der GUI-App Startup Applications empfehlen. 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