0

Pythonスクリプトを実行しているアプリケーションを知る方法はありますか?

Textmate、Sublime Text 2、Terminal (私は Mac OSX を使用しています) など、複数のソースから Python を実行できます。どのツールが現在の python アプリを起動したかを正確に知るにはどうすればよいですか。

osとモジュールを調べてみましたinspectが、解決策が見つかりませんでした。

4

2 に答える 2

1

psutilを使用して、かなりクロスプラットフォームな方法でこの種のことを行うことができます。

import psutil
import os
my_process = psutil.Process(os.getpid())
parent = my_process.parent
print "Parent process name: " + parent.name

psutilドキュメントから:

現在、単一のコード ベースを使用することで、32 ビットと 64 ビットの両方の Linux、Windows、OSX、および FreeBSD をサポートし、Python のバージョンは 2.4 から 3.3 までです。

名前だけでなく、実行可能パス (オプションのリストから選択している場合はより便利です) と、それが呼び出された完全なコマンドラインも取得できます。プロセスを実行したユーザー名も取得できます。パラメーターとそれらが使用可能なプラットフォームの詳細については、psutil クラスのドキュメントを参照してください。

余談ですが、可能であれば、呼び出し元のアプリケーションに応じて動作を変更する必要がないようにコードを構造化します。共有コード。ただし、コードのクリーンさよりも他の懸念が優先される場合があるため、psutil要求したことを実行できるはずです。

于 2013-01-09T14:33:16.457 に答える
0

unix 固有のままにしておきたい場合は、プロセスの親 PID を で取得できますos.getppid()。それをプログラムIDに変換したい場合は、サブプロセスを実行して、関連するOS固有のPID-to-useful-dataツールを使用できます(オッズオン - ps

于 2013-01-09T13:38:31.430 に答える