個人用メモ。
下に示してある内容を ~/Library/LaunchAgents/
に info.s01.mongod.plist
(下のLabelのところにつけているIdentifierに.plistをつけたもの) として保存、ログアウトして再度ログインする、または launchctl load ~/Library/LaunchAgents/info.s01.mongod.plist
とすると設定ファイルを読み込み、RunAtLoad
が有効なのでジョブも実行される。ジョブを止めるときは launchctl stop info.s01.mongod
とし、再度走らせるときは launchctl start info.s01.mongod
とします。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>info.s01.mongod</string> <key>ProgramArguments</key> <array> <string>/Users/*****/mongodb/bin/mongod</string> <string>--storageEngine</string> <string>wiredTiger</string> </array> <key>UserName</key> <string>*****</string> <key>RunAtLoad</key> <true/> </dict> </plist>
- もちろんinfo.s01.〜を使う必要は全くないので適宜変更を。もちろんユーザー名のアスタリスクも
- ProgramArgumentsは呼び出すプログラムとそのコマンドラインオプションをスペース区切りでstring要素として追加する。
/Users/*****/mongodb/bin/mongod --storageEngine wiredTiger
を呼ぶのに相当- 今回の場合MongoDB 3.0以降でサポートされるWiredTigerストレージエンジンをデフォルトで使いたいのでこう設定
- 実際毎回手動で起動するときにこれ書くのしんどい
- UserNameはそのプログラムを誰として実行するか。"This optional key specifies the user to run the job as. This key is only applicable when launchd is running as root."(launchd.plistのmanpagesより)とのことだけど、普段mongodをログインユーザーで走らせてるので権限ぶっ壊れないようにいちおうそれに揃える。
より詳細な解説は日本語だと LaunchDaemons (launchctl, launchd.plist) の使い方 が親切。