In diesem Artikel erfahren Sie, wie Sie Skripte (Python, Bash usw.) beim Start auf Ubuntu 20.04 Server/Desktop ausführen.
In diesem Tutorial lernen Sie:
- So erstellen Sie eine Systemd-Diensteinheit
- So erstellen Sie ein einfaches Skript zum Überprüfen des Speicherplatzes
- So legen Sie Berechtigungen für die Systemd-Service-Unit-Datei fest
- So legen Sie Skriptberechtigungen fest
- So aktivieren Sie die Systemd-Diensteinheit, damit sie beim Systemstart ausgeführt wird
So führen Sie ein Skript beim Start auf Ubuntu 20.04 Focal Fossa KDE Server/Desktop aus
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu 20.04 installiert oder Ubuntu 20.04 Focal Fossa aktualisiert |
Software | Nicht zutreffend |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Schritt-für-Schritt-Anleitung zum Ausführen eines Skripts beim Start unter Ubuntu 20.04
Ubuntu 20.04 basiert auf Systemd, daher besteht die einfachste und empfohlene Methode zum Ausführen eines Skripts beim Start darin, eine Systemd-Dienstdatei zu erstellen und jedes Skript wie Bash, Python usw. über diesen Dienst während des Systemstarts auszuführen.
Die folgenden Schritte zeigen Ihnen, wie Sie ein Beispiel-Bash-Skript ausführen, das die Speicherplatznutzung von /home
meldet Verzeichnis und speichert den Bericht im Verzeichnis /root
Verzeichnis jedes Mal, wenn das Ubuntu-System startet.
- Erstellen Sie zunächst eine Systemd-Dienstdatei wie im folgenden Beispiel:
[Unit] After=network.service [Service] ExecStart=/usr/local/bin/disk-space-check.sh [Install] WantedBy=default.target
Nach: Weist systemd an, wann das Skript ausgeführt werden soll. In unserem Fall wird das Skript nach der Netzwerkverbindung ausgeführt. Ein anderes Beispiel könnte mysql.target usw. sein.
ExecStart: Dieses Feld enthält einen vollständigen Pfad zum eigentlichen Skript, das beim Start ausgeführt werden soll
WantedBy: In welches Boot-Ziel soll die systemd-Unit installiert werdenHINWEIS
Für weitere Informationen zum Erstellen von Systemd-Diensteinheiten führen Sieman systemd.unit
aus Befehl. - Erstellen Sie ein Skript, das beim Start des Ubuntu-Systems ausgeführt werden soll. Wie in Schritt 1 oben angegeben, lautet der Pfad und der Name des neuen Skripts
/usr/local/bin/disk-space-check.sh
.Unten sehen Sie ein Beispiel für ein solches Skript:
#!/bin/bash date > /root/disk_space_report.txt du -sh /home/ >> /root/disk_space_report.txt
- Setzen Sie die entsprechenden Berechtigungen für die Systemd-Diensteinheit und das Skript:
$ sudo chmod 744 /usr/local/bin/disk-space-check.sh $ sudo chmod 664 /etc/systemd/system/disk-space-check.service
- Aktivieren Sie als Nächstes die Diensteinheit:
$ sudo systemctl daemon-reload $ sudo systemctl enable disk-space-check.service
- Jetzt können Sie Ihr System neu starten. Sobald das System startet, sollten Sie die folgende Datei sehen, die die Speicherplatznutzung in Ihrem
/root
enthält Verzeichnis:$ sudo ls /root/ disk_space_report.txt