Python で分離されたバックグラウンド プロセスを開始する方法
シェル スクリプトを Python に変換するとき、プロセスを開始する必要がある場合があります。スクリプトが完了した後も保持される背景。これを実現するには、Python の subprocess モジュールを利用できます。
subprocess.Popen の使用
subprocess.Popen 関数新しいプロセスを生成できます。バックグラウンドでプロセスを開始し、親プロセスから切り離すには、shell=True および stderr=subprocess.STDOUT 引数を subprocess.Popen に渡します。
import subprocess subprocess.Popen(["command", "arg1", "arg2"], shell=True, stderr=subprocess.STDOUT)
fork() の使用Function
もう 1 つのオプションは、fork() 関数を使用して、親プロセスと同時に実行される子プロセスを作成することです。ただし、この方法はより高度であり、シグナルとリソースを慎重に処理する必要があります。
ブロックの回避
子プロセスの待機中に親プロセスがブロックされるのを防ぐには、完了した場合は、によって返されたプロセス オブジェクトで communicate() メソッドを呼び出さないようにしてください。 Popen.
例
バックグラウンドで sleep 30 を実行するプロセスを開始するには、以下:
import subprocess subprocess.Popen(["sleep", "30"])
説明
この文脈では、「バックグラウンド」とは、親プロセスから開始されたかどうかに関係なく、親プロセスから独立して実行されるプロセスを開始することを指します。シェルの背景。
以上がPython の「subprocess」モジュールを使用してバックグラウンド プロセスを切り離す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。