[solved] eigener systemd wie beenden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

[solved] eigener systemd wie beenden

Beitrag von The Hit-Man » 07.06.2022 18:15:54

Ich habe mir ein eigenen systemd Dienst geschrieben. Den kann ich auch starten und er arbeitet auch. Aber Wenn ich den Dienst beenden will mit:

Code: Alles auswählen

systemctl stop meindienst
Dann laufen die Sachen, die ich im Script gestartet habe weiter. Zum Beispiel legt das Script tap Devices an und eigentlich wenn ich den Dienst lösche, sollen diese auch wieder entfern werden auch wenn es jetzt nicht unbedingt nötig wäre ... Eine andere Sache ist die, das ich in dem Script, Dinge starte, die ich mit & starte. Das heißt ja, das dieses Programm dann in den Hintergund verschwindet und da seine Arbeit macht ( was auch gewollt ist ). Aber auch das würde ich gerne, nach dem stoppen des Dienstes ausschalten.

Weiß da jemand was?
Zuletzt geändert von The Hit-Man am 07.06.2022 21:13:17, insgesamt 1-mal geändert.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: eigener systemd wie beenden

Beitrag von MSfree » 07.06.2022 20:08:24

Hier gilt mal wieder, daß viele Wege nach Rom führen. Ich habe auf meinem Linuxrouter beispielsweise ein Skript für meine Firewallregeln. Die entsprechende service-Datei sieht so aus:

Code: Alles auswählen

[Unit]
Description=Firewall
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/iptables/firewall start
ExecStop=/etc/iptables/firewall stop

[Install]
WantedBy=multi-user.target
Zum Starten wird mein Skript mit dem Parameter start aufgerufen, zum Beenden mit stop. Das Skript selbst hat ein case, das die beiden Parameter auswertet und mit entsprechenden Aufrufen verzweigt:

Code: Alles auswählen

case "$1" in
  start)
       # hier Startaufrufe
       ;;
  stop)
       # hier Stopaufrufe
       ;;
  *)
       echo "Usage: $N {start|stop}" >&2
       exit 1
       ;;
esac
Was du da starten und beenden willst, mußt du allerdings schon selbst wissen :wink:

Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Re: eigener systemd wie beenden

Beitrag von The Hit-Man » 07.06.2022 20:14:26

@MSfree:

aha ;) muß man ja wissen ... der zweite codeabschnitt, sieht mir dann sehr debian-like aus. Wurden so nicht damals auch die Init-Scripte von Debian gestartet?
Aber

Code: Alles auswählen

ExecStop=/etc/iptables/firewall stop
kannte ich auch noch nicht. Hatte im Netz viel nach so etwas gesucht ... Also die Sache zum Stoppen ...
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: eigener systemd wie beenden

Beitrag von mat6937 » 07.06.2022 21:01:11

The Hit-Man hat geschrieben: ↑ zum Beitrag ↑
07.06.2022 20:14:26
... kannte ich auch noch nicht. Hatte im Netz viel nach so etwas gesucht ... Also die Sache zum Stoppen ...
Siehe z. B.: https://www.freedesktop.org/software/sy ... #ExecStop=

Benutzeravatar
The Hit-Man
Beiträge: 2170
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Re: eigener systemd wie beenden

Beitrag von The Hit-Man » 07.06.2022 21:12:58

@mat6937:
Ich muß wohl echt falsch gesucht haben !!! Funktioniert aber so ... also gelöst ... Danke ...
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

Antworten