Linuxでファイルやgconfの変更をトレースする

ファイルのトレース

straceコマンドをつけてコマンドを実行すると、そのコマンドがコールしたシステムコールがすべてエラー出力に書き出される。しかしこれだと情報が多すぎるので、-e trace=を指定して、トレースするシステムコールを制限する。以下のコマンドはopenとwriteのみをトレースする。

$ strace -e trace=open,write 2>&1 gedit | less

しかしこれだとwriteのところを見ても第一引数はfdなのでファイル名が分からない。openしたときの戻り値がここには入るはずなので、それで検索して見つけるしかないか?いいツールがあるのかもしれない。

gconfのトレース
これは簡単。環境変数のGCONF_DEBUG_TRACE_CLIENTを設定すればいい。

$ GCONF_DEBUG_TRACE_CLIENT=1 gedit

出力も分かりやすい。

debianでデフォルトのブラウザを設定する

デフォルトのブラウザの設定の方法は色々あるみたいでアプリによってどこを見るのかが違うようです。

1、httpプロトコルハンドラを見る場合

gconf-editorを起動して、/desktop/gnome/url-handlers/http/commandの値を”firefox %s”などに設定する。

2、デフォルトのブラウザを設定を見る場合

gconf-editorで/desktop/gnome/applications/browser/execの値を”firefox”などに設定する。

3、x-www-browserを見る場合

以下のようにupdate-alternativesやgalternativeなどで設定を変える。