Linux豆知識 202
/proc/<pid>/ディレクトリに存在するファイル
公開日:2017年04月28日
今回は、「/proc/<pid>/cmdlineなど」、/proc/<pid>/ディレクトリに存在するファイルをいくつか見ていきます。(<pid>はプロセスID(数字))
たとえば、実行中のSSHサーバのプロセスIDが1489だとします。
このプロセスに対応するcmdlineをcatで参照してみましょう。
--
$ cat /proc/1489/cmdline
/usr/sbin/sshd
--
このファイルには、プロセスを開始したコマンドがフルパスで記述されており、catコマンドで参照することができます。
次に、このプロセスに対応するexeを見てみましょう。ls -l で確認してください。
--
# ls -l /proc/1489/exe
lrwxrwxrwx 1 root root 0 4月 27 20:40 2017 /proc/1489/exe -> /usr/sbin/sshd
--
このファイルは、「プロセスの実行ファイルへのシンボリックリンク」なのです。シンボリックリンクとなっているファイルは他にも「cwd」(プロセスがカレントワーキングディレクトリとして利用しているディレクトリへのシンボリックリンク)、「root」(プロセスがルートディレクトリとして利用しているディレクトリへのシンボリックリンク)などがあります。
これらのファイルは、プロセスを開始したコマンドが「どのコマンドか」といったことがわかるというだけではありません。うまくスクリプトを書くことで、プロセスを管理・制御するということもできます。なんといってもプロセスが実際に利用しているファイルやディレクトリに直接アクセスできますので、上手に活用しましょう。