Найти - Пользователи
Полная версия: Подпроцесс
Начало » Python для новичков » Подпроцесс
1
Chocobo
Добрый день!

Подскажите, пожалуйста, как можно запустить из программы процесс, который останется рабочим после завершения родительского скрипта.

Другими словами, необходимо чтоб родительский скрипт вызвал подпроцесс и завершился, а дочерний отрабатывал дальше.

Добавлю: python2.6, ОС - CentOS'и и возможно freebsd

сейчас обнаружил os.fork, но пока не понял, то ли это что мне нужно…
Chocobo
Вопрос снимается, я копал в нужную сторону:

import os,time
pid=os.fork()        # создаём дочерний процесс
if pid!=0:             # завершается родитель, дочерний вернет pid =0
    sys.exit(0) 
while True            # Дальше работает только форкнутый процесс
    time.sleep(10)

P.s: Почитать можно здесь: https://docs.python.org/2/library/os.html#os.fork и http://www.cyberforum.ru/python/thread630830.html
JOHN_16
Chocobo
вообще для запуска внешних приложений есть модуль subprocess . fork работает только для UNIX подобных систем. Это конечно ваш случай, но все же subprocess может разные задачи решать.
Chocobo
JOHN_16
Спасибо за дополнение, с subprocess я немножко знаком.
Поправьте, если я не прав, насколько я понял при вызове subprocess.call() - родитель будет ждать исполнения функции, а мне нужно было продолжить обработку только после завершения родительского процесса.
doza_and
Chocobo
subprocess.call()

Есть subprocess.Popen. вообще в этом модуле много чего есть кроме call читайте документацию.
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