21.11.16

Systemd - eigenen Service erstellen

Zunächst erstelle ich ein kleines Script in

/usr/local/bin/myscript

Darin wird testweise alle 5 Sekunden eine Zeile an den Logger (syslog) geschickt.
Damit es auch über den Service beendet werden kann, wird ein trap eingebaut.

#!/bin/bash

killit()
{
    echo "...Ende" | logger
    exit 0
}
trap killit HUP

while true; do


    sleep 5
    echo "...sleeping" | logger
done

 Ausführbar machen mit

chmod +x /usr/local/bin/myscript


Nun erstelle ich die Datei
/lib/systemd/system/myscript.service

mit folgendem Inhalt:
 [Unit]
Description=My own little script
After=network.target.

[Service]
#EnvironmentFile=
ExecStart=/usr/local/bin/myscript
ExecStop=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=myscript.service

Den Service aktivieren mit

systemctl enable myscript

Status  anzeigen lassen mit

service myscript status

Starten mit
service myscript start

Im Systemlog (/var/log/syslog) sollten nun alle 5 Sekunden neue Einträge auftauchen.
Service stoppen mit

service myscript stop

Sehr schön ist in diesem Zusammenhang das Zusammenspiel mit journalctl.

Ein

journalctl -u myscript.service listet nur die Einträge des soeben definierten Services auf.

Keine Kommentare:

Kommentar veröffentlichen

Openhab und Ecoflow Max - API Anbindung

 Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...