Отправка команд в отдельный GNU с помощью подпроцесса python

Привет, я несколько дней пытался решить проблему с кодом моей диссертации. То, что я пытаюсь сделать, это запустить код Python на экране с помощью команды в Putty через:

    $ screen ./Top.py

Top.py — это фиктивный код, который я сделал, чтобы попытаться разобраться с этим, а не ждать восемь часов, пока реальный код выдаст ошибку. Проблема, с которой он сталкивается, заключается в том, что subprocess.call() не может начинать новые экраны с отдельного экрана.

Содержимое Top.py:

    #!/usr/bin/env python

    import time
    import subprocess

    time.sleep(10)

    subprocess.call(["screen", "nohup", "./Call1.py", "&"])
    subprocess.call(["screen", "nohup", "./Call2.py", "&"])
    time.sleep(10)

Никаких проблем с Call1.py и Call2.py нет, и весь код работает гладко, если я никогда не отсоединяю экран. (Но полный код займет пару дней, поэтому я не могу оставить его прикрепленным.) Еще одно замечание: nohup просто есть, поэтому я могу получить файл nohup.out для дальнейшего использования, мой фактический код меняет каталог они расположены так, что не перезаписывают друг друга.

У меня нет проблем с тем, чтобы не использовать экран для запуска Call1 и Call2, но они должны работать параллельно и в фоновом режиме, чтобы остальная часть моего кода могла продолжаться.

Ближе всего к решению я подошел - думаю.....


person Morgan Meeuwissen    schedule 30.08.2013    source источник
comment
Несколько дней разочарования, и в течение 10 минут после публикации я нахожу решение, огромное спасибо Жилю за ответ здесь: link Я полагаю, что на самом деле это могло быть решение, которое я пытался использовать ранее, но почему-то потерпел неудачу в кодировании subprocess.call()   -  person Morgan Meeuwissen    schedule 30.08.2013
comment
Хорошо, это более раннее решение было ложной тревогой, которая работала для моего тестового кода, но не для моего реального кода. В конце концов, я решаю проблему, переключаясь на subprocess.popen вместо subprocess.call, что устраняет необходимость в уродливом использовании дополнительных экранов.   -  person Morgan Meeuwissen    schedule 30.08.2013