Linux Bash/Shell skript Prozess beenden?
Hallo ich habe folgendes Problem : Ich öffne mein shell Skript . Das Skript öffnet dann wiederum mehrere Prozesse für mich. Einer dieser Prozesse lässt sich aber nur mit ^C beenden (also User Eingabe ) . Ich möchte aber das sich dieser Prozess in ca 10 Sekunden selbst beendet .
3 Antworten
Das Skript öffnet dann wiederum mehrere Prozesse für mich
was ist das?
Aufruf weiterer Script-Dateien?
Aufruf anderer Binaries?
Bei Binaries sollte
am Ende des 1. Sripts
sleep 10 ; killall <Name-des-Binaries>
ausreichen.
Bei weiteren z.B. bash-Script-Dateien ist das so nicht verwendbar, denn killall bash würde alles töten.
Die einfachste Lösung ist dann wohl mehrere bash-Interpreter zu erstellen
ln -s /usr/bin/bash /usr/bin/bash1
ln -s /usr/bin/bash /usr/bin/bash2
....
und dann auch wieder killall bash1 ... zu verwenden.
Du könntest in Deinem Skript nach 10 Sekunden mit ps, grep und cut die PID Deines Prozesses extrahieren und ihn damit dann per kill beenden.
Gibt wahrscheinlich noch elegantere Lösungen, aber das ist jetzt mal das erste was mir einfällt.
Den Prozess mit timeout starten dürfte hier eine elegante Lösung sein.