Как запустить внешний скрипт в фоновом режиме?[дубликат]

StackOverflow https://stackoverflow.com/questions/1605520

Вопрос

На этот вопрос уже есть ответ здесь:

Я попробовал эти два метода:

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(["python", "test.py"]) должно сработать.

Обратите внимание, что задание все равно может завершиться после завершения основного сценария.В этом случае попробуйте subprocess.Popen(["nohup", "python", "test.py"])

Другие советы

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top