• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Bash-Script per kill komplett beenden

Ich hab ein Bash-Script geschrieben, wo ich unter anderem Nachrichten unter KDE per xmessage ausgebe.

Das Script wird regelmäßig von cronjobs ausgeführt und soll das evtl. noch laufende Script beenden, vor er es das nächste mal aufruft.

Dazu habe ich einfach die Prozessnummer mit $$ an den Cronjob übergeben.
Das funktioniert auch soweit, nur wenn z.B. das xmessage Fenster noch offen ist wird zwar das Script beendet, doch das Fenster ist noch aktiv bis man was angeklickt hat.

Gibt es einen Workaround um das xmessage-Fenster mit zu beenden?
Unter ps wird es nur als xmessage angezeigt, daher weiß ich auch nicht wie ich es identifizieren soll.
 
Übergebe doch auch noch die ProzessID des xmessage Fensters. Dann kannst du das auch beenden. Oder aber du überprüfst im Script selbst, ob es einen noch existierende ProzessID des xmessage Fensters gibt und killst das dann.
 
Erstmal danke für die Tipps!

Das mit der xmeesage ID hört sich gut an. Nur wie bekomme ich die ID der ausgeführten xmessage?

Wenn ich habe:

xmessage "Hello...."

echo $!

und dann ist die Variable leer. In $$ steht nur die Prozess-ID der gesamten Shell, aber nicht der von der xmessage
 
A

Anonymous

Gast
starte doch xmessage mit einem Timeout
Code:
 xmessage -timeout 60 "Meldungstext"
wird nach 60 Sekunden wieder geschlossen, wenn sich keiner erbarmt auf ok zu klicken. Kannst ja die Zeit so einstellen, dass sie vor dem nächsten cronjob abgelaufen ist.

robi
 
Danke für den Tipp - das wäre eine mögliche Alternative.

Nur gibt es halt das Problem, dass die Cronjobs wenn ich z.B. sie jede Minute laufen lasse immer zu vollen Minute gestartet werden. Wenn ich mein Fenster ganz kurz vor einer Minute (z.B. 59 Sekunden) starte habe ich fast die ganze Zeit zwei Fenster.

Daher wäre mir ein Workaround mit der Prozess-ID lieber
 
Du ProzessID kannst du wie folgt bekommen:

Code:
ps -A | grep xmessage | cut -d\  -f2

Bei der Option -d sind nach dem Backslash 2 Leerzeichen.
 
Dass es auch andere xmessages geben kann, die ich nicht beenden will, sondern nur die ausgewählte.
 
Oben