Найти - Пользователи
Полная версия: Управление запущенным процессом
Начало » Python для новичков » Управление запущенным процессом
1
Dathy
Пишу вот так
pc = Popen('start cmd /K' + zapros, shell=True)
потом проверяю
while True:
    print pc.wait()
    time.sleep(1)
первый вывод None потом пишет нули, хотя в CMD приложение запущенное еще работает..
Но почему то pc.wait() или pc.poll() возвращает 0 уже на вторую секунду..
Попробовал через multiprocess и все равно тоже самое, метод is_alive() возвращает False хотя процесс работает… Подскажите пожалуйста, что не так то?
Dathy
подскажите хоть куда курить-то, я не понимаю почему не работает..
doza_and
Dathy
метод is_alive() возвращает False
Ну наверное так и есть.

Есть команда tasklist. Она покажет что работает что нет. Посмотрите pid процесса который запустили.

И ваша идея непонятна start да еще cmd /K зачем этот огород?
Чем вас это не устраивает?
pc = Popen(zapros, shell=True)

А еще лучше если получится то так:
pc = Popen(zapros)

pyuser
Dathy
я не понимаю почему не работает..
Все работает. cmd /K запускает новую консоль (процесс) и завершает работу, а новая консоль (процесс) живет своей жизнью.
doza_and
Посмотрите pid процесса который запустили
Это будет PID завершенного процесса, поэтому смотреть на него не интересно :)
doza_and
И ваша идея непонятна start да еще cmd /K зачем этот огород?
Иногда возникает необходимость видеть результат выполнения запущенного дочернего процесса и при этом не портить вывод родительского процесса.
Dathy
Попробуйте так (только для windows):
import subprocess as sp
DETACHED_PROCESS = 0x00000008
p = sp.Popen(zapros, shell=True, creationflags=DETACHED_PROCESS)
doza_and
pyuser
Это будет PID завершенного процесса, поэтому смотреть на него не интересно :)
Как раз интересно, он должен увидеть что процесса нет. Чел спросил куда смотреть. Смотреть надо на то что и в каком порядке запускалось :).

Вы прям всю малину испортили, человек мог сам разобраться и получить удовольствие от этого.

pyuser
видеть результат выполнения запущенного дочернего процесса
А не проще унаследовать с другим stdout или перенаправить результат в файл? Но допускаю, что это дело привычки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB