1

私はpythonスクリプトを持っています。これは、いつまでも while ループを持つサービスとして実行されています。スクリプトは別の python で実行する必要がありますが、出力を待たずに通過する必要があります。

というわけで、while ループを含むメインスクリプトは次のような "main.py" です。これは決して終わることはありません。

while True:
    # do some task
    time.sleep(5)

これは、次のような同様の機能を持つ別の python "start.py" で実行する必要があります。

os.system("main.py 1")

また

subprocess.Popen("python main.py")

ここでの問題は、「start.py」が「main.py」の出力を意図したとおりに終了しないことです。しかし、「start.py」が「main.py」をロードしてバックグラウンドに残す必要があるようにしたいのです。次に、「start.py」がプロセスを完了する必要があります。どうすれば変更できますか

os.system("main.py 1")

「main.py」の待ちをスキップする機能は?クロスプラットフォームで実行する必要があることを考慮してください。

4

1 に答える 1

0

Plumbum https://plumbum.readthedocs.org/en/latest/、特に背景/前景のセクションhttps://plumbum.readthedocs.org/en/latest/#foreground-and-background- を確認することをお勧めします。実行

from plumbum import BG
from plumbum.cmd import python

python('main.py', '1') & BG

クロスプラットフォームも。

于 2015-12-16T13:03:22.113 に答える