忘れがちな脳のための覚え書き
lsof はlist open filesの略でファイルを使用しているプロセスをリスト表示するコマンドらしいです。
lpicの教科書には指定したポートを利用しているプロセスを表示するコマンドと紹介されていたので試してみます。
masasuzu@lenny% lsof -i:22 [~] COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME ssh 2968 masasuzu 3u IPv4 21620 TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED)
こんな感じですね。-i: の後に指定するのは宛先のポート番号ですね。嘘です。一般ユーザなので、自分以外が実行したプロセスが見えていないだけですね。
masasuzu@lenny% sudo lsof -i:22 [~] COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 1746 root 3u IPv6 4527 TCP *:ssh (LISTEN) sshd 1746 root 4u IPv4 4529 TCP *:ssh (LISTEN) ssh 2968 masasuzu 3u IPv4 21620 TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED) sshd 3031 root 3r IPv4 21775 TCP lenny.intra.masasuzu.net:ssh->henry.intra.masasuzu.net:39545 (ESTABLISHED) sshd 3033 masasuzu 3u IPv4 21775 TCP lenny.intra.masasuzu.net:ssh->henry.intra.masasuzu.net:39545 (ESTABLISHED)
ちなみにプロセス番号を指定することもできます。
masasuzu@lenny% lsof -p 2968 [~] COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME ssh 2968 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu ssh 2968 masasuzu rtd DIR 8,1 4096 2 / ssh 2968 masasuzu txt REG 8,1 354120 258558 /usr/bin/ssh ssh 2968 masasuzu mem REG 8,1 47520 392809 /lib/libnss_files-2.7.so ssh 2968 masasuzu mem REG 8,1 43472 392811 /lib/libnss_nis-2.7.so ssh 2968 masasuzu mem REG 8,1 31536 392807 /lib/libnss_compat-2.7.so ssh 2968 masasuzu mem REG 8,1 130114 392795 /lib/libpthread-2.7.so ssh 2968 masasuzu mem REG 8,1 7736 392792 /lib/libkeyutils-1.2.so ssh 2968 masasuzu mem REG 8,1 32232 258516 /usr/lib/libkrb5support.so.0.1 ssh 2968 masasuzu mem REG 8,1 14616 392803 /lib/libdl-2.7.so ssh 2968 masasuzu mem REG 8,1 1375536 392800 /lib/libc-2.7.so ssh 2968 masasuzu mem REG 8,1 11648 392501 /lib/libcom_err.so.2.1 ssh 2968 masasuzu mem REG 8,1 154784 258519 /usr/lib/libk5crypto.so.3.1 ssh 2968 masasuzu mem REG 8,1 660264 258520 /usr/lib/libkrb5.so.3.3 ssh 2968 masasuzu mem REG 8,1 181416 258517 /usr/lib/libgssapi_krb5.so.2.2 ssh 2968 masasuzu mem REG 8,1 72568 392814 /lib/libresolv-2.7.so ssh 2968 masasuzu mem REG 8,1 39112 392802 /lib/libcrypt-2.7.so ssh 2968 masasuzu mem REG 8,1 88968 392806 /lib/libnsl-2.7.so ssh 2968 masasuzu mem REG 8,1 93504 255868 /usr/lib/libz.so.1.2.3.3 ssh 2968 masasuzu mem REG 8,1 10560 392818 /lib/libutil-2.7.so ssh 2968 masasuzu mem REG 8,1 1667176 255264 /usr/lib/libcrypto.so.0.9.8 ssh 2968 masasuzu mem REG 8,1 119288 392797 /lib/ld-2.7.so ssh 2968 masasuzu 0u CHR 136,3 5 /dev/pts/3 ssh 2968 masasuzu 1u CHR 136,3 5 /dev/pts/3 ssh 2968 masasuzu 2u CHR 136,3 5 /dev/pts/3 ssh 2968 masasuzu 3u IPv4 21620 TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED) ssh 2968 masasuzu 4u CHR 136,3 5 /dev/pts/3 ssh 2968 masasuzu 5u CHR 136,3 5 /dev/pts/3 ssh 2968 masasuzu 6u CHR 136,3 5 /dev/pts/3
参考までにファイルを指定するとこんな感じになります。
masasuzu@lenny% lsof /home/masasuzu [~] COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME zsh 2229 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu zsh 2239 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu zsh 2245 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu mysql 2470 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu zsh 2862 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu ssh 2868 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu zsh 2872 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu lsof 2885 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu lsof 2886 masasuzu cwd DIR 8,1 4096 335289 /home/masasuzu