ホームページ > バックエンド開発 > Python チュートリアル > Python の「subprocess」モジュールを使用してバックグラウンド プロセスを切り離す方法は?

Python の「subprocess」モジュールを使用してバックグラウンド プロセスを切り離す方法は?

Linda Hamilton
リリース: 2024-12-16 08:42:11
オリジナル
867 人が閲覧しました

How to Detach Background Processes Using Python's `subprocess` Module?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート