アプリから外部バックグラウンド プロセスを生成するときに使用するかどうかがpty.fork()
わかりません。os.fork()
(チェスエンジンなど)
端末でアプリを生成する場合と同様に、親が強制終了された場合に、生成されたプロセスが終了するようにします。
2 つのフォークの間の浮き沈みは何ですか?
これまで、私は常にsubprocess
このモジュールを使用してきました。サブプロセスと通信するための優れた API を提供します。
call(*popenargs, **kwargs)
それらの実行をブロックするために使用できますPopen
。クラスを使用すると、非同期実行を処理できると思います。
詳細については、ドキュメントをご覧ください。
os.fork
vsを使用する限りpty.fork
、どちらもプラットフォームに大きく依存しており、どちらも Windows では動作しません (または少なくともテストされています)。pty
ドキュメントを読むと、モジュールは2つのうちでより制約されているようです。主な違いは、疑似端末の側面です。subprocess
したがって、モジュールを使用できるようにコードを設計する気がない場合はos.fork
、pty.fork
.
疑似端末は、実際に端末を必要とする一部のアプリケーションに必要です。対話型シェルはこれらの例の 1 つですが、他にも多くの例があります。pty.fork オプションは、別の os.fork としてではなく、疑似端末を使用するための特定の API として存在します。