Python subprocess blocking main thread?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Hast Du capture_stdout=True mitübergeben?

Ggf. ist es in dem Fall leichter direkt Popen zu nutzen. Dann würdest Du mit signal eben SIGUSR senden und anschließend Popen.communicate. Du könntest auch direkt den Stream lesen.

Oder Du nimmst einen anderen Ansatz, indem Du raspistill nicht von Python aus startest:

raspistill .... -o- | pythoncript

So ist der STDIN des Scriptes direkt an den STDOUT von rapistill gebunden. Wenn Du STDIN also nicht anderweitig benötigst, wäre das auch eien Option.

Und zu guter letzt könntest DU noch ne Named Pipe verwenden in die Raspistill auf sigusr schreibt und dann diese einfach mit dem Pythonscript auslesen.