Форум сайта python.su
1
Добрый день!
Подскажите, пожалуйста, как можно запустить из программы процесс, который останется рабочим после завершения родительского скрипта.
Другими словами, необходимо чтоб родительский скрипт вызвал подпроцесс и завершился, а дочерний отрабатывал дальше.
Добавлю: python2.6, ОС - CentOS'и и возможно freebsd
сейчас обнаружил os.fork, но пока не понял, то ли это что мне нужно…
Отредактировано Chocobo (Авг. 13, 2015 12:43:59)
Офлайн
1
Вопрос снимается, я копал в нужную сторону:
import os,time pid=os.fork() # создаём дочерний процесс if pid!=0: # завершается родитель, дочерний вернет pid =0 sys.exit(0) while True # Дальше работает только форкнутый процесс time.sleep(10)
Отредактировано Chocobo (Авг. 13, 2015 13:04:17)
Офлайн
221
Chocobo
вообще для запуска внешних приложений есть модуль subprocess . fork работает только для UNIX подобных систем. Это конечно ваш случай, но все же subprocess может разные задачи решать.
Офлайн
1
JOHN_16
Спасибо за дополнение, с subprocess я немножко знаком.
Поправьте, если я не прав, насколько я понял при вызове subprocess.call() - родитель будет ждать исполнения функции, а мне нужно было продолжить обработку только после завершения родительского процесса.
Офлайн
253
Chocobo
subprocess.call()
Офлайн