lsof - 使用中のファイルを探す
以前、cooldadさんの「メール起動の怪」にコメントつけさせていただいたのですが、SDカードを取り外そうと画面右下のSDアイコンをタップするとメールをマルチメディア辞書が起動して挙句にSDカード取り外しに失敗するという現象が発生していました。
今日2ちゃんねるのスレッドを読んでいたところlsofというコマンドを利用すれば原因を突き止められるという書き込みを発見して早速実行。lsofのftpサイト(ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/)からソースを持ってきてセルフコンパイルしようしたのですが上手く行かなかったので、ザウルス用のパッケージがないか探したところこちらでバージョン4.57のパッケージを見つけました。
ターミナルから実行してSDカード(/usr/mnt.rom/card)に関係している情報をピックアップしてみます。
$ lsof | grep /usr/mnt.rom/card qpe 7266 root mem REG 60,1 1568 504 /usr/mnt.rom/card/backup/.anthy/private_dict_default.tt qpe 7266 root 21u REG 60,1 1568 504 /usr/mnt.rom/card/backup/.anthy/private_dict_default.tt $ lsof /usr/mnt.rom/card/backup/.anthy/private_dict_default.tt COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME qpe 7266 root mem REG 60,1 1568 504 /usr/mnt.rom/card/backup/.anthy/private_dict_default.tt qpe 7266 root 21u REG 60,1 1568 504 /usr/mnt.rom/card/backup/.anthy/private_dict_default.tt
詳しい見方がわかりませんけど、SDカードにある.anthy/private_dict_default.ttというファイルが使用中であるようです。これはザウルス再起動後にはSDカードの取り外しが可能なのにAnthyを用いた日本語変換を行った後は取り外しが不可能になることに合致します。
というわけで原因はanthyの辞書ファイルでした(メールと辞書が起動するのは依然として不明ですけど)
対策はやっぱりAnthy関連ファイルをHDD上に持ってくるしかないのかなぁ。
それはともかくこのlsofといコマンドは何がファイルを開いているかだけでなくて、TCPポートについても調査ができるのでいろいろと使いでがありそうな気がします。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/652chkopenuser.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/664useportps.html