cronではなくlaunchdを使うのがいいようです。
~/Library/LaunchAgents
に
com.aipo.example.plist
みたいなファイルを登録します。
<?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>com.aipo.example</string> <key>RunAtLoad</key> <false/> <key>KeepAlive</key> <false/> <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string> <key>USERNAME</key> <string>yourname</string> <key>HOME</key> <string>/User/yourname</string> <key>NODE_PATH</key> <string>$HOME/Documents/lambda-local/node_modules</string> <key>AWS_ACCESS_KEY_ID</key> <string>yourKeyId</string> <key>AWS_SECRET_ACCESS_KEY</key> <string>yourKeyId</string> </dict> <key>ProgramArguments</key> <array> <string>/usr/local/bin/lambda-local</string> <string>-l</string> <string>$HOME/Documents/index.js</string> <string>-h</string> <string>handler</string> <string>-e</string> <string>$HOME/Documents/lambda-local/event-samples/custom.js</string> </array> <key>StandardOutPath</key> <string>$HOME/Documents/log/lambda-local.log</string> <key>UserName</key> <string>$USERNAME</string> <key>StandardErrorPath</key> <string>$HOME/Documents/log/lambda-local-error.log</string> <key>UserName</key> <string>$USERNAME</string> <key>StartInterval</key> <integer>300</integer> </dict> </plist>
のような感じで記述します。
Label:ユニークなパッケージ名
RunAtLoad:自動起動
KeepAlive:(プロセスが落ちた際に)自動復旧
EnvironmentVariables:環境変数。ホームディレクトリとかを設定します。
ProgramArguments:スペース区切りのコマンドを1つずつ分けて書きます。
StandardOutPath:標準出力先
StandardErrorPath:エラー出力先
StartInterval:実行間隔(秒)
launchd に登録
launchctl load ~/Library/LaunchAgents/com.aipo.example.plist
設定変更時
再読込させます。
launchctl unload ~/Library/LaunchAgents/com.aipo.example.plist launchctl load ~/Library/LaunchAgents/com.aipo.example.plist
起動
# 起動 launchctl start com.aipo.example # 停止 launchctl stop com.aipo.example
参考
http://qiita.com/hidekuro/items/316abf8b359734227c88
http://qiita.com/kegamin/items/e035304e7295750cdf7d