Я попробовал эти два метода:Как запустить и запустить внешний скрипт в фоновом режиме?
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
Оба подхода необходимо подождать, пока test.py отделки, которая блокирует основной процесс. Я знаю, что «nohup» может справиться с этой задачей. Есть ли способ Python запустить test.py или любые другие сценарии оболочки и оставить его в фоновом режиме?
Пусть test.py, как это:
for i in range(0, 1000000):
print i
И os.system() или subprocess.Popen() будет блокировать основную программу до 1000000 строк вывода не отображается. Я хочу, чтобы test.py запускался молча и выводил только основной вывод программы. Основная программа может зависеть, пока test.py все еще работает.
subprocess.Popen ([ «питон», «test.py»]) просто запускает test.py и блокирует основной процесс, ожидая выхода test.py. – jack
Это должно произойти только при запросе 'stdout = PIPE'. Какая версия Python? Можете ли вы добавить «print» xxx «» после вызова Popen, чтобы проверить, действительно ли он блокируется? –
Я только что проверил код выше, и он работает для меня с Python 2.5.2 на Windows. Ваша проблема должна быть чем-то другим. –