説明

説明

実行中の Linux プロセスに関する次の情報を取得するにはどうすればよいですか?

  • シェル環境変数
  • 作業ディレクトリ
  • コマンドラインオプション

答え1

この情報は以下から入手できます/procファイルシステムでは、実行中のプロセスに関する情報が保存されます。

  • cat /proc/<pid>/environ
  • cd /proc/<pid>/cwd; pwd -P
  • cat /proc/<pid>/cmdline

答え2

@atype の提案に従って環境を出力すると、すべての環境変数とその値が区切りなしで連結されます。

より良い出力を得るには、

$ xargs -0 -L 1 echo < /proc/21645/environ 
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
TERM=xterm
LC_MESSAGES=en_US.UTF-8
LANGUAGE=en_US.UTF-8

(プライバシー上の理由により出力は短縮されています)

説明

/proc/$pid/environ には、環境変数が null で区切られたリストとして含まれています。

xargs は、*STDIN から任意の長さのリストを読み取り、その要素をツール (この場合は echo) に送り、最大コマンド ライン長を超えないようにするツールです。パラメータ "-0" は、xargs が項目区切り文字として null (デフォルトの空白または改行の代わりに) を使用するように切り替えます。パラメータ "-L 1" は項目の数を 1 に制限します。これにより、各環境変数が新しい行に出力されます。

関連情報