以前、passengerスタンドアローン版を使って自分のMacでRedmineを自動起動するようにしたのですが、rvmをアップデート(1.10.2)したら起動しなくなったでござる!調べた結果1.8.0〜1.10.2ではダメぽでした。
launchd では以下のコマンドを実行している。
/Users/nullpon/.rvm/bin/rvm use 1.8.7-p352@redmine -S passenger start -e production -p 3001
これをシェルで実行すると
Error: unknown action 'ruby'
と表示されて終了ふざけんな。Githubのrvmのコードみて直そうと思ったけど、よく分からん…。
というわけでplistの方を修正する。rvmコマンドによるruby環境の切り替えをせずに、直接 ~/.rvm/bin/ の下にあるrubyを使ってpassengerを起動する方針。
自分の環境ではruby-1.8.7-p352@redmineをRedmineの起動に使っている。その場合のrubyコマンドは
~/.rvm/bin/ruby-1.8.7-p352@redmine
またpassengerコマンドは
~/.rvm/gems/ruby-1.8.7-p352@redmine/bin/passenger
これらをplistにフルパスで指定しよう。~/Library/LaunchAgent/jp.paulownia.redmine.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>jp.paulownia.redmine</string> <key>KeepAlive</key> <false/> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/Users/nullpon/Documents/redmine</string> <key>ProgramArguments</key> <array> <string>/Users/nullpon/.rvm/bin/ruby-1.8.7-p352@redmine</string> <string>/Users/nullpon/.rvm/gems/ruby-1.8.7-p352@redmine/bin/passenger</string> <string>start</string> <string>-e</string> <string>production</string> <string>-p</string> <string>3001</string> </array> <key>StandardOutPath</key> <string>/dev/null</string> <key>StandardErrorPath</key> <string>/dev/null</string> </dict> </plist>
plistをloadしなおす
$ launchctl unload ~/Library/LaunchAgent/jp.paulownia.redmine.plist $ launchctl load ~/Library/LaunchAgent/jp.paulownia.redmine.plist