2009-07-29 15 views
2

これを行う方法はありますか?BASHのBASHスクリプトのPIDのenv変数を取得するにはどうすればいいですか?

私はいくつかの変数をエクスポートしてコンポーネントを実行するスクリプトを持っています。

私はプロセスが実行されている間、これらの変数のいくつかの実際の値を調べることを検討しています。ザ・自体がPIDの特定(それは明らかではなかった場合、私は、この時にはかなり新しいよ。笑!)

あるvarsは(どの私は別のスクリプト/プログラムにそれらの値を組み込むことがありますので、ここでは適用されます)

ありがとう!

答えて

4

あなたは私があなたの質問を理解していないすべての定義されたenvvarsのために/ proc/PID /環境

0

を照会することができます。しかし... bashスクリプトの中で環境変数をいくつかエクスポートすると、実行中のプロセスの環境になります(これは子プロセスが作成したプロセスのすべての環境変数を派生させるためです)。

0

そのプロセスの環境ファイルをチェックしましたが、奇妙なことに、そのプロセスのために定義されたすべての環境変数を含んでいません。

エクスポートされた変数はプロセスに固有のものですが、私はいつもそれらを知っているとは限りません。どのenv変数が特定であり、プロセスのために宣言されているか、そしてそれらの値が何であるかを照会することを探しています。

0

ええと、私が正しく理解していれば、スクリプトを "kill"シグナルに応答させ、 "trap"を使ってランタイム情報を抽出すると思います。潜在的にstdoutにメタデータを書き込むことができます。

あなたのスクリプトにSIGHUPをトラップして、stdoutに書き込むことがありますか?

0

それは、Linuxの場合は行うことができます。

xargs -0 printf '%s\n' < /proc/${pid}/environ 
関連する問題