Gebräuchliche Dienste in Linux können beim Booten problemlos hinzugefügt werden, da die meisten von ihnen mit einem eigenen Skript ausgestattet sind, das mit den Befehlen ‚chkconfig‘ und ’systemctl‘ ausgeführt wird.
Um zum Beispiel den Dienst „Apache httpd“ beim Booten hinzuzufügen, führen Sie einen der folgenden Befehle auf der Grundlage Ihres Systemmanagers aus. In ähnlicher Weise können Sie jeden bekannten Dienst bei Bedarf beim Start hinzufügen.
Für Sys V init system:
# chkconfig --level 35 httpd on
Für systemd system:
# systemctl enable httpd
Gelegentlich müssen Sie vielleicht ein benutzerdefiniertes Skript oder einen Befehl oder einen Dienst beim Start/Boot hinzufügen. Wenn ja, wie macht man das?
In diesem Artikel werden wir verstehen, wie man die folgenden drei Methoden zur Implementierung verwendet:
- Verwendung der /etc/rc.d/rc.local
- Nutzung der crontab-Datei
- Systemd-Diensteinheit
Methode-1: Nutzung der /etc/rc.d/rc.local-Datei
Die „/etc/rc.local“-Datei wird traditionell ausgeführt, nachdem alle normalen Computerdienste am Ende des Prozesses des Wechsels in einen Mehrbenutzer-Runlevel gestartet wurden.
Diese Methode funktioniert auch auf dem systemd-System, und Sie müssen den Speicherort Ihres Skripts zur Datei „/etc/rc.d/rc.local“ hinzufügen, damit es beim Booten ausgeführt wird.
Stellen Sie sicher, dass die Datei die Berechtigung zur Ausführung hat.
# chmod +x /etc/rc.d/rc.local
Um dies im Detail zu verstehen, werden wir ein einfaches Skript wie unten gezeigt erstellen, aber Sie können jedes Skript nach Bedarf erstellen:
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Wenn das Skript fertig ist, setzen Sie die Ausführungserlaubnis wie unten gezeigt:
# chmod +x /opt/scripts/run-script-on-boot.sh
Schließlich fügen Sie das Skript am Ende der Datei hinzu:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Starten Sie Ihr System neu, um dies zu überprüfen:
# reboot
Methode-2: Verwendung der crontab-Datei
cron führt geplante Aufträge automatisch im Backend zu einer bestimmten Zeit aus.
Dies kann einfach mit einer speziellen Zeichenkette namens "@reboot"
mit cron job erreicht werden.
@reboot ist eine spezielle Zeichenkette und erlaubt dem Benutzer, jeden Befehl oder jedes Skript beim Start (Boot-Zeit) auszuführen.
Dieses Beispiel führt die Datei ‚/opt/scripts/run-script-on-boot.sh‘ beim Neustart des Systems aus.
Wir werden das gleiche Skript verwenden, das im obigen Beispiel erstellt wurde. Fügen Sie dazu einfach den folgenden Eintrag in die crontab-Datei ein:
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Starten Sie Ihr System neu, um dies zu überprüfen:
# reboot
Methode-3: Verwendung der systemd-Diensteinheit
Diese Methode funktioniert nur auf dem systemd-System und ist sehr einfach.
Zu diesem Zweck müssen Sie ein systemd-Startskript erstellen und es im Verzeichnis „/etc/systemd/system/“ ablegen.
Dies ist unser Beispiel für ein systemd-Startskript:
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Nachdem Sie das Skript im systemd-Verzeichnis abgelegt haben, führen Sie den folgenden Befehl aus, um die systemd-Konfigurationsdateien zu aktualisieren und den Dienst zu aktivieren:
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Starten Sie Ihr System neu, um dies zu überprüfen:
# reboot
Bonus-Tipps:
Wenn Sie ein Skript im Hintergrund ausführen möchten, müssen Sie das nachgestellte kaufmännische Und-Symbol "&"
hinzufügen.
/Path/To/My_Script &
Wenn Sie den Befehl unter einem anderen Benutzer ausführen möchten, verwenden Sie das folgende Format:
su - $USER -c /Path/To/My_Script
Abschluss
Dieses Tutorial beschreibt kurz, wie Sie ein benutzerdefiniertes Skript oder einen Befehl oder einen Dienst beim Start hinzufügen können.