« EJB3 リモートとローカルでビジネス・インターフェースを共有するには? | トップページ | EJB3 スタンドアロン・クライアントからセッション・ビーンにアクセスする »

hdiutilでDVD作成中はスクリーンセーバーをオフにする

Mac OS XでDVDを焼くときにはディスクユーティリティを使うより、ターミナルでhdiutilコマンドを使う方が簡単です。

$ hdiutil burn someImageFile

しかし、MacBookではバックグラウンドでDVDを焼きながら他の作業をしたり、何もしなくてもスクリーンセーバーが起動してしまったりすると、検証に失敗することが多いように思います。DVD作成時のCPU使用率は非常に低いので、問題はディスクが遅いからでしょうか。

DVD焼き込み時の失敗を少なくするため、hdiutilコマンドの実行中はスクリーンセーバーがOFFになるようにスクリプトを書いてみました。

#!/bin/sh
hashcode=xxxxxxxxxxxx       # hashcodeは環境に合わせて変更してください
plist=ByHost/com.apple.screensaver.$hashcode
plistfile=~/Library/Preferences/$plist.plist
if [ ! -e "$plistfile" ]; then
    echo "$plistfile not found. Please check it."
    exit
fi
# スクリーンセーバーのidleTimeを保存
idleTime=`defaults read $plist idleTime`
# スクリーンセーバーをOFFに設定
defaults write $plist idleTime -int 0

hdiutil burn $1

# スクリーンセーバーの設定をリストア
defaults write $plist idleTime -int $idleTime

上記のhashcode部分はMACアドレスに基づいて決められているようなので、~/Library/Preferences/ByHost/com.apple.screensaver.xxxxxxxxxxxx.plist というファイルがあることを確認して、上記スクリプトのxxxxxxxxxxxxの部分を書き換えてください。使い方は、例えば上記スクリプトをburnimageというファイル名で保存した場合、chmod +x burnimageで実行権を与え、以下のように実行します。

$ burnimage someImageFile

"Please insert a disc:"という表示が出たら、メディアを挿入します。DVDの焼き込み、検証が終わると自動的にメディアが排出される振る舞いは、ディスクユーティリティを使用した場合と同じです。

それでも、DVD作成をバックグラウンドにして別の作業をするのは怖くてできないというのはちょっと情けないです。なんとかならないものでしょうか。

|

« EJB3 リモートとローカルでビジネス・インターフェースを共有するには? | トップページ | EJB3 スタンドアロン・クライアントからセッション・ビーンにアクセスする »

mac」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181807/10850491

この記事へのトラックバック一覧です: hdiutilでDVD作成中はスクリーンセーバーをオフにする:

« EJB3 リモートとローカルでビジネス・インターフェースを共有するには? | トップページ | EJB3 スタンドアロン・クライアントからセッション・ビーンにアクセスする »