aufgerufene Hintergrundprozesse weiterlaufen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
HerbertN
User
Beiträge: 24
Registriert: Mittwoch 14. Februar 2007, 11:29

Hi Leute,
ich habe einige Shellscripte, für die ich gerade mit pygtk und glade unter ubuntu eine kleine GUI gebaut habe.
Die Shellscripte starte ich z.B. über

Code: Alles auswählen

import subprocess
def on_btnFormatieren_clicked(*args):
    subprocess.call("gksudo gnome-terminal -x \"/home/euter/scripts/formatieren.sh\"",shell=True)
Das gnome-terminal bleibt so lange geöffnet, wie das Script läuft. Damit sehe ich die Ausgabe des Scripts - alles einwandfrei.

Nun werden in einem Shellscript einige lang laufende Kopierprozesse über & in den Hintergrund geschickt und laufen weiter, wenn sich das Shellscript schon beendet hat.

Wenn ich das Script aber über meine GUI starte, werden die Hintergrundprozesse sauber mit abgeschossen. Das würde ich in diesem Falle aber gerne unterbinden.
=> Wie bekomme ich das hin?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Dann musst du die Kopier-Prozess von dem Shell-Prozess abgeben, das geht mit &disown (dazu das sh-Skript anpassen).

Oder z.B. mit `disown %1`, wenn der Prozess schon läuft. (Das geht dann auch von Python aus, musst deinen Call eben erweitern).
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
HerbertN
User
Beiträge: 24
Registriert: Mittwoch 14. Februar 2007, 11:29

krasses Ding, man bash ist immer wieder für Überraschungen gut. Ich danke dir!
Antworten