Mercurial に Python アプリケーションがあります。アプリケーションで、現在実行中のコミットを表示する必要があることがわかりました。これまでに見つけた最善の解決策は、を利用することですhglib
。次のようなモジュールがあります。
def _get_version():
import hglib
repo = hglib.open()
[p] = repo.parents()
return p[1]
version = _get_version()
これを使用hglib
して、使用されているバージョンを検索し、結果を変数に格納します。この変数は、サービスが実行されている間ずっと使用できます。
私の問題は、これによりhg
子プロセスが実行されたままになることです。これは、このモジュールの初期化が完了するとすぐに使用する必要がなくなるため、私にとっては役に立ちhglib
ません。
リポジトリ インスタンスへの参照が範囲外になると、ガベージ コレクション中に子プロセスがシャットダウンされることを期待していました。しかし、どうやらそれはそれがどのように機能するかではありません。
ドキュメントを読んでhglib
も、子プロセスをシャットダウンする方法に関するドキュメントは見つかりませんでした。
hg
子プロセスを終了したら、子プロセスをシャットダウンするための推奨される方法は何ですか?