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 systemdBeachten 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 -eFü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 $DISPLAYDie 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.lokalFügen Sie Ihre Befehle zwischen "#! /bin/bash“ und „exit 0“, wie unten gezeigt:
#! /bin/bashPfad/zu/mein_Skript.Sch
Ausgang 0
Mach rc.lokale ausführbare Datei, indem Sie den folgenden Befehl ausführen:
$ sudo chmod +x /etc/rc.lokalStarten 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