|
[SpeedyBoot]ChromiumのキャッシュをOS終了時に削除する
以前のエントリで、
SpeedyBootはユーザーデータが10MBを超えると保存できなくなる問題の対応として、
Webブラウザのキャッシュを削除するシェルスクリプトを記載した。
これをOSの終了時に自動で実行することができたので、紹介する。
(環境:SpeedyBoot-v.1.2.7)
WebブラウザはChromiumを使った。
ちなみに、Chromiumとは、オープンソース版のWebブラウザで、
ChromaはこのChomiumをカスタマイズしたものらしい。
起動時に実行するスクリプトは /etc/rcS.d/ ディレクトリが実行される。
/etc/init.d/chromiumに起動、終了スクリプトを書いて(実行権限も付加)、
/etc/rcS.d/S70chromiumあたりにリンクしておく。
これは一般的なlinuxディストリビューションと同じ。
しかし、終了時には /usr/bin/dvmcmd_persist が実行されるだけなので、
/etc/init.d/chromiumにstopスクリプトを書いても実行されない。
dvmcmd_persistはシェルスクリプトで、デフォルトでは
/etc/init.d/dvmpersist uninitみたいなのが1行書かれていた。
要はdvmcmd_persistにchromium stopを書いてあげればよい。
ちょっと面倒なのは、chromium stopは、
単純に元からあるコマンドの下に追加するのではなく、
元からあるコマンドの上に追加しないといけない。
これはdvmpersist uninitでユーザーデータの保存をやっているので、
そのあとにWebキャッシュを削除しても手遅れだから。
そこでこんな風に書いてみた。
[/etc/init.d/chromium]
persist="/usr/bin/dvmcmd_persist"
chromium_init_tmp="/tmp/chromium_init.tmp"
case "$1" in
start)
# install remove web cache to dvmcmd_persist.
echo "install remove web cache to dvmcmd_persist."
cat $persist > $chromium_init_tmp
echo /etc/init.d/chromium uninit > $persist
cat $chromium_init_tmp >> $persist
;;
uninit|stop)
echo "remove web cache and large files."
rm -f /home/.config/chromium/Safe\ Browsing\ Bloom
rm -f /home/.config/chromium/Safe\ Browsing\ Bloom\ Filter\ 2
rm -f /home/.config/chromium/Default/Last\ Tabs
rm -f /home/.config/chromium/Default/History
rm -f /home/.config/chromium/Default/Thumbnails
rm -f /home/.config/chromium/Default/Visited\ Links
rm -f /home/.config/chromium/Default/Web\ Data
rm -f /home/.config/chromium/Default/Archived\ History
rm -f /home/.config/chromium/Default/History\ Index\ *
rm -f /home/.config/chromium/Dictionaries/*
rm -f /home/.config/chromium/Default/Current\ Session
rm -f /home/.config/chromium/Default/Current\ Tabs
rm -f /home/.config/chromium/Default/Last\ Session
rm -f /home/.config/chromium/Default/Preferences
rm -rf /home/.cache/chromium/Media\ Cache
rm -rf /home/.cache/chromium/Cache
;;
*)
echo "Usage..."
;;
esac
これでうまく動いてくれた。
実行権限と、/etc/rcS.d/S70chromiumへのリンクは必要。
ちなみに、Webキャッシュの削除をdvm_persistに直に書かないで、
/etc/init.d/chromiumに分離したのは、
chromiumを別パッケージにしておきたいから。
実際にデフォルトのfirefoxのキャッシュの削除はdvm_persistに書かれている。
別にこれでもよいのだが、
後から別ファイル(sqxパッケージ)で追加インストールやアンインストールに対応しておきたかったから。
|