Eigenes Script bei Systemstart ausführen
Hinweis:
Soll ein eigenes Script bei Systemstart ausgeführt werden, ist zuvor sicherzustellen, dass „root“ dieses Script fehlerfrei ausführen kann. Ein fehlerhaftes Script kann bei Systemstart schwerwiegende Störungen hervorrufen.
Einrichtung:
systemd erwartet die Unit-Files (Steuerdateien) im Verzeichnis /etc/systemd/system/. z.B.:
/etc/systemd/system/myScript.service
Angenommen das eigene Script ist /usr/local/bin/myService.sh, kann man die Unit-Datei mit folgenden Inhalt füllen:
#-------------------------------------------------------------------- # Autostart von /usr/local/bin/myService.sh #-------------------------------------------------------------------- [Unit] Description=Beschreibung dieses Service After=getty.target [Service] Type=oneshot ExecStart=/usr/local/bin/myService.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target
Hinweis: Wer einen Editor benutzt, der bei Änderungen einer Datei eine Backup-Datei im gleichen Verzeichnis erstellt, sollte diese unbedingt entfernen, damit der Service nicht doppelt gestartet wird.
Der Service muss noch aktiviert werden:
/usr/sbin/service enable myScript.service
Ab diesem Moment wird der Service automatisch bei Systemstart ausgeführt.
Der Start des Service kann auch ohne Neustart des Server durchgeführt werden:
/usr/sbin/service start myScript.service
Zur Fehlersuche ist es hilfreich, wenn man zuvor eine 2. Konsole geöffnet hat und darin mit
journalctl -f
das Systemprotokoll beobachtet.
Nach Änderungen am Script muss der Service gestoppt und wieder gestartet werden
/usr/sbin/service stop myScript.service /usr/sbin/service start myScript.service
Nützliches:
Die Möglichkeiten von Unit-Files sind sehr vielfältig. Eine Suche im Netz nach „systemd unit files“ liefert zahlreiche Informationen wie z.B. https://wiki.ubuntuusers.de/systemd/Units/