subprocess startet nicht, gültige pid trotzdem vorhanden?
Verfasst: Donnerstag 15. Mai 2008, 21:53
N'Abend
Ich glaube mir entgeht etwas bzgl. dem subprocess. Vielleicht weiß jemand mehr. Und zwar:
Wenn ich ein subprocess über Shell öffne, sagen wir ..
und dessen pid erfrage (also cmd.pid), bekomme ich doch auch dann eine pid, wenn kein subprocess am Laufen ist .. Wovon bekomme ich denn dann die pid? Von dem Shell - hab ich in einem anderen Posting gelesen. Aber wie komm ich dann an der pid von dem Programm selber, das ich gestartet habe (oder eben auch nicht)? Muß ich den mühsamen Weg über die lock-Files gehen?
Ganz analog mit dem returncode, der andauernd auf None steht, auch wenn kein subprocess gestartet werden konnte .. und nach meinem Wissen auf irgendeine Zahl > 0 (dem jeweiligen error code) stehen sollte. Entgeht mir was? Oder mach ich was grundsätzlich falsch?
Kurz zu dem Hintergrund: ich wollte (möglichst einfach) registrieren, wann (bzw. ob) ein als subprocess geöffnetes Programm auch wirklich gestartet ist, und habe dafür sowohl mit returncode und pid [wie oben beschrieben] rumexperimentiert, als auch mit communicate() [das aber erst dann stdo und stde zurückgibt, nachdem das Programm terminiert]
Mein Interesse ist mittlerweile mehr theoretisch (kennt man ja, man hat sich in einer Kleinigkeit so verbissen, daß man sie nicht mehr aus seinem Kopf kriegt) Und trotzdem werd ich keine schlauen Vorschläge zurückweisen
VG, ivka_sto
Ich glaube mir entgeht etwas bzgl. dem subprocess. Vielleicht weiß jemand mehr. Und zwar:
Wenn ich ein subprocess über Shell öffne, sagen wir ..
Code: Alles auswählen
proc = 'konquero ohne r'
cmd = subprocess.Popen(proc, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
Ganz analog mit dem returncode, der andauernd auf None steht, auch wenn kein subprocess gestartet werden konnte .. und nach meinem Wissen auf irgendeine Zahl > 0 (dem jeweiligen error code) stehen sollte. Entgeht mir was? Oder mach ich was grundsätzlich falsch?
Kurz zu dem Hintergrund: ich wollte (möglichst einfach) registrieren, wann (bzw. ob) ein als subprocess geöffnetes Programm auch wirklich gestartet ist, und habe dafür sowohl mit returncode und pid [wie oben beschrieben] rumexperimentiert, als auch mit communicate() [das aber erst dann stdo und stde zurückgibt, nachdem das Programm terminiert]
Mein Interesse ist mittlerweile mehr theoretisch (kennt man ja, man hat sich in einer Kleinigkeit so verbissen, daß man sie nicht mehr aus seinem Kopf kriegt) Und trotzdem werd ich keine schlauen Vorschläge zurückweisen
VG, ivka_sto