I'd like to run a process and not wait for it to return. I've tried spawn with P_NOWAIT and subprocess like this:
app = "C:\Windows\Notepad.exe"
file = "C:\Path\To\File.txt"
pid = subprocess.Popen([app, file], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).pid
However, the console window remains until I close Notepad. Is it possible to launch the process and not wait for it to complete?
Этот вызов не ждет завершения дочернего процесса (в Linux). Не спрашивайте меня, что делает close_fds
; я написал код несколько лет назад. (BTW: Документация subprocess.Popen
запутана, IMHO.)
proc = Popen([cmd_str], shell=True,
stdin=None, stdout=None, stderr=None, close_fds=True)
Edit:
Я посмотрел документацию subprocess, и я думаю, что важным аспектом для вас является stdin=None, stdout=None, stderr=None,
. В противном случае Popen фиксирует вывод программы, и ожидается, что вы на него посмотрите. close_fds
делает файловые хэндлы родительского процесса недоступными для дочернего.