第1回 プログラムの挙動を覗いて幸せになる“タダ”で幸せになるソフトウェアパラサイト(1/2 ページ)

» 2006年06月06日 16時55分 公開
[爪生聖,ITmedia]

 先日、IT関連のメディアに携わる某編集者に、インスタントメッセンジャーで以下のような質問をされた。

編集G USB接続のポータブルHDDを外すときってシステムトレイの「ハードウェアの安全な取り外し」を選択してからケーブルを抜きますよね。

爪生 そうな。

編集G でもたまに「ファイルが使用中なので取り外しができません」とか言われませんか? あれ、かなり切なくなるんですが……。

爪生 気にしないで抜け。


 実際のところ「ファイルが使用中なので取り外しができません」というメッセージを無視していきなりケーブルを引っこ抜いても、HDDが壊れることはめったにない。少なくとも筆者の経験では1度もない。もっともいきなりUSBを抜いたことなんて2、3回しかないのだが。

 さらに言えば、HDDが壊れてもデータを復元してくれるサルベージサービスというものがあるので、不慮の事故が起きた場合でも安心だ。ちなみに、以前NASが飛んでしまったときにサルベージの見積もりをとったことがあるが、結構なお値段だった覚えはある。つまり、お金があればなんとかなるのだ。

プログラムの挙動を覗くためのツール

 さて、少しだけ真面目に考えてみよう。この問題の本質は「ファイルが使用中なので取り外しできません」という警告からは、そのファイルにアクセスしているプログラムがなんだか分からない、という点にある。Windowsが出すメッセージはたいていの場合、問題を解決するためのヒントではなく状況を説明するだけだ。逆に、ファイルを使用中のプログラムさえ分かれば、それを終了させてしまえばいい。

 今どういうプログラムが動いているのかは、Windowsのタスクマネージャを使えば簡単に調べられる。しかし、各プログラムがどのファイルにアクセスしているのかまでは分からない。やはりケーブルをぶちっと抜くしか手はないのだろうか(もちろんWindowsの使用をやめるのも1つの手だ)。

 そういったときに最適なフリーソフトがある。プログラムのファイルアクセスを監視できるツール「Process Explorer」だ。このソフトを使うと、プロセスごとのCPU使用率履歴からコマンドライン、使用しているファイルまでをばっちり表示してくれる。もっとも、外付けドライブを外すくらいなら、わざわざ1つ1つのプログラムを調べなくても、メニューの「Find」で「Find Handle...」を選択し、「D:」などのドライブレターで検索すれば十分だ。

ProcessExplorer実行画面。プロセスごとのCPU利用率履歴はPCが次第に重くなる、なんてときの原因解明に役立つかもしれない
画面は使用中のファイルからプロセスを検索したところ(ここでは“Handle or type”にD:を入力し、Dドライブのファイルにアクセスしているプロセスを検索した)。原稿を書きながらどんな音楽を聴いていたかも丸分かりだ

 このProcess Explorerはとても多機能なので、いろいろ面白い使い方ができる。この原稿を書きながらなんとなくProcess Explorerの画面を眺めていたら、勝手に「AutoFlip.exe」という見覚えのないプログラムが動いていてかなり焦ったのだが、プロパティのStringを見ると「PM5 USB PC Camera」の文字列が入っていたので、これはUSBカメラのユーティリティであるということが分かった。と、いう具合に正体不明のプロセスが走っている場合でも安心なのだ。

Stringsはファイルの中から可読文字列を表示する。手がかりになる文字列があれば正体不明のプロセスも推測しやすい

 このソフトの開発元であるSysinternalsには、ほかにも便利なフリーソフトがたくさんある。例えば、Process Explorerのコマンドライン版ともいえるHandleがその1つ。たまに「コマンドラインなんて古臭い」という声を聞くが、Handleを使えばテキストファイルに落としたり、パイプで別のコマンドとつないだりできるのでとても便利なのだ。ただし、Process Explorerがプログラムの挙動をリアルタイムでモニタするのに対して、Handleはスナップショット、つまり起動した瞬間の状態を吐き出すという違いはある。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

最新トピックスPR

過去記事カレンダー