SDDへのアクセスを減らす設定 その2
前回のRAMディスク作成は対象ユーザが固定となっていて、よろしくないので修正してみた。このあたりを読んで少し勉強してみた。
Undocumented Mac OS X:第1回 initを置き換えるlaunchd【前編】と【後編】
LaunchAgentsに配置された設定ファイルは、ログイン時にユーザーごとに起動され、それぞれのユーザー権限で動作するlaunchdで処理される
該当ユーザのLaunchAgentsにRAMディスク作成用のスクリプトを仕掛けてみる。~/Library/LaunchAgents/以下にlocal.ssd_setting.plistを作って設定してみる。ログイン時に一回起動するだけなので"RunAtLoad"を真に設定。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>local.ssd_setting</string> <key>Program</key> <string>/Users/<ユーザ名>/Documents/script/ssd_setting.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist>
設定するスクリプト(ssd_setting.sh)は簡単にこんな感じ。エラーの通知しかたがまだ不明なのでとりあえずsyslogに通知だけしておく。
#!/bin/sh # SSD用アクセス回数低減させる設定 ram_dev=`hdid -nomount ram://393216` # 192*1024*1024/512 newfs_hfs $ram_dev mkdir /tmp/ffc #Firefoxキャッシュ用 mount -t hfs $ram_dev /tmp/ffc; RESULT=$? if [[ $RESULT != 0 ]] then logger -p user.notice "ram disk mount failed." else logger -p user.notice "ram disk mount suucess." fi exit $RESULT
動かしてみたところログイン時にRAMディスクはマウントされていた。ユーザスクリプトの配置先がいまいちスッキリしない。どこが良いものか…。