/procディレクトリを活用するLinux Hacks(3/4 ページ)

» 2008年03月04日 01時00分 公開
[Federico Kereki,Open Tech Press]
SourceForge.JP Magazine

プロセスの内容

 前述した通り、数字の名前がついているディレクトリは実行中の各プロセスを表わしている。プロセスが終了すれば、そのプロセスの/proc内のディレクトリは自動的に削除される。ディレクトリが/procディレクトリ内に存在している間に確認してみると、以下のようなさまざまなファイルがあることが分かる。

attr             cpuset   fdinfo    mountstats  stat

auxv             cwd      loginuid  oom_adj     statm

clear_refs       environ  maps      oom_score   status

cmdline          exe      mem       root        task

coredump_filter  fd       mounts    smaps       wchan


 以下に主なファイル/ディレクトリを挙げる。

  • cmdline:プロセスを開始したコマンド名と、全パラメータを表示する
  • cwd:プロセスのCWD(カレント・ワーキング・ディレクトリ)へのシンボリックリンク。なお同様にexeはプロセスの実行ファイルへのシンボリックリンク、rootはプロセスのルートディレクトリへのシンボリックリンク
  • environ:プロセスの環境変数をすべて表示する
  • fd:プロセスが使用しているすべてのファイル/デバイスのファイルディスクリプタを含むディレクトリ
  • maps、statm、mem:プロセスが使用中のメモリに関連するファイル
  • stat、status:プロセスの状態についての情報を提供する。statよりもstatusの方が分かりやすい表示になっている

 以上のようなファイルを利用すれば、さまざまなスクリプトを書くこともできる。例えばゾンビプロセスを探し出したい場合には、数字の名前がついた各ディレクトリの/statusファイルの中に「(Z) Zombie」という表示があるかどうかを確認すればよい。同様に以前、あるプログラムが実行中なのかどうかを知る必要があったのだが、その際には/cmdlineファイルの中に目的の文字列があるかどうかを調べることで確認できた(ただしこのことはpsコマンドの出力からも知ることができる)。さらに言えば、もっと見かけのよいtopを作りたいという場合にも、必要な情報はすべてそろっている。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ