Seite 1 von 1

aufgerufene Hintergrundprozesse weiterlaufen lassen

Verfasst: Mittwoch 8. Dezember 2010, 13:44
von HerbertN
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?

Re: aufgerufene Hintergrundprozesse weiterlaufen lassen

Verfasst: Donnerstag 9. Dezember 2010, 12:06
von ms4py
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).

Re: aufgerufene Hintergrundprozesse weiterlaufen lassen

Verfasst: Donnerstag 9. Dezember 2010, 18:15
von HerbertN
krasses Ding, man bash ist immer wieder für Überraschungen gut. Ich danke dir!