こんにちは、私は数日間、論文コードの一部の問題を解決するのに苦労しています。私がやろうとしているのは、Puttyのコマンドを介して画面内でpythonコードを実行することです:
$ screen ./Top.py
Top.py は、実際のコードでエラーが発生するまで 8 時間待つのではなく、これを整理するために作成したダミー コードです。発生する問題は、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 に問題はなく、画面を切り離さなければコード全体がスムーズに実行されます。(ただし、完全なコードには数日かかるため、添付したままにすることはできません。) もう 1 つの注意点は、nohup がちょうどそこにあるため、後で参照できるように nohup.out ファイルを取得できることです。実際のコードはディレクトリを変更します。それらは互いに上書きしないように配置されています。
screen を使用して Call1 と Call2 を実行しなくても問題はありませんが、残りのコードを続行できるように、それらを並行してバックグラウンドで実行する必要があります。