2008-01-13
_ Mac OS X で NicoCache を Daemon 化
以前,Windows での NicoCache のサービス化の手順について公開しましたが,OS X 環境でも同じように Daemon 化してマシン起動時に自動で立ち上がるように設定してみました.
Mac OS X Tiger 以降では LaunchDaemons を利用して OS 起動時にプロセスを起動する方法が利用できます.LaunchDaemons については,LaunchDaemons (launchctl, launch.plist) の使い方 maruko2 Note. で,詳しくまとめられてるので参考に.
NicoCache を起動させるには,以下のような設定ファイルを作成します./Applications 以下に NicoCache ディレクトリを作成し,JAR ファイルを呼び出す形にしています.おそらく WorkingDirectory の指定がないと,cache ディレクトリなどがおかしなところにできてしまうのではないかと思います.
<?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>dareka.NicoCache</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/bin/java</string> <string>-jar</string> <string>/Applications/NicoCache/NicoCache.jar</string> </array> <key>WorkingDirectory</key> <string>/Applications/NicoCache</string> </dict> </plist>
作成した設定ファイルを /Library/LaunchDaemons/dareka.NicoCache.plist あたりに置いて以下のコマンドを実行します.
% sudo launchctl load /Library/LaunchDaemons/dareka.NicoCache.plist % sudo launchctl list | grep NicoCache 49 - dareka.NicoCache
これでロードされていることが確認できます./Application/NicoCache 以下に cache ディレクトリが作成されていればひとまず問題ないでしょう./var/log/system.log を確認すると,NicoCache の起動ログを確認することができます.
Jan 13 16:55:25 hoge dareka.NicoCache[49]: NicoCache v0.31 Jan 13 16:55:25 hoge dareka.NicoCache[49]: port=8080 Jan 13 16:55:25 hoge dareka.NicoCache[49]: direct mode (no secondary proxy) Jan 13 16:55:25 hoge dareka.NicoCache[49]: title=true Jan 13 16:55:25 hoge dareka.NicoCache[49]: Resume suspended download On Jan 13 16:55:25 hoge dareka.NicoCache[49]: Touch Cache File On Jan 13 16:55:26 hoge dareka.NicoCache[49]: total cache size=267,663,859bytes
Windows に比べてかなり簡単に Daemon 化することができました.
システム環境設定>アカウント>ログイン項目に.jarファイルを追加でいいんでない?
確かに.難しいこと考えずにそうするのが一番手っ取り早そうですね.
launchdでDaemon化した場合、Java Launcherが起動しないから、その分負荷が減らせる。
なるほど.ちょっとした手間をかけることによるメリットは,やはりあるんですね.
すいません、訂正です。
上のlaunchdファイルはjarをJava Launcherを経由せず直接起させているため、そのようなscriptを作ってログイン項目に追加させてやれば、同じ結果が得られます。
launchdによるメリットは、プロセスが落ちてしまった場合に自動で再起動してくれる点でしょうか。