環境移設中にうまく動かなくなったので,追記.
ユーザの環境変数を引き継いでbundle exec ... は動くのに,crontab で @reboot から起こそうとすると,unicorn が上がらない場合,私の環境では次の2つが原因であった.
- bundleコマンドを––user–localオプションつけてインストールしたから,rootからは見えなかった.
⇒フルパスで対応 - bundlerを––user–localオプションつけてインストールしたから,bundle exec unicorn_railsの中でエラー吐いて動かなかった.
sudo su - で完全にrootとしてログインして,gem install bundlerする.
これで解決したので,これ以上は調べてないよん.
途中.nginx から unicorn の呼び出しは設定完了済,設定ファイルは現行環境を見て,適宜,パースする(予定).
$cd tmp $ wget http://www.redmine.org/releases/redmine-2.6.0.tar.gz $ tar xzf redmine-2.6.0.tar.gz $ mv redmine-2.6.0 .. $ cd ~/redmine-2.6.0 $ sudo gem install bundler $ vi database.yml $ vi Gemfile.local + gem "unicorn" $ bundle install --without development test rmagick postgresql sqlite $ cp /oldfile/databasefile.sqlite3 ./db/ $ cp /oldfile/unicorn.rb ./config/ $ sudo bundle exec unicorn_rails -D -E production -c config/unicorn.rb # テスト $ sudo kill (pid) # 停止
追記 2015/4/6
unicornまわりのコマンド系
- 起動
-
# bundle exec unicorn_rails -D -E production -c config/unicorn.rb
–D でデーモン化
–E hogehoge で hogehoge 環境を起動
–c hogehoge で hogehoge というファイルをコンフィグファイルに指定 - 停止
-
# kill -QUIT PID
unicorn.rb とかで pid ファイルを指定していると思うので,そいつを cat するか,ps aux | grep unicorn とかで探す.
- 再起動
-
# kill -HUP PID
完全にコンフィグとか読み直して欲しいんだけど,なんか反映されないことがあるので,その場合はQUIT→bundle execとする
- 新規に起動
-
# kill -USR2 PID
前のプロセスを残して起動.この後,QUIT すれば,サービスを止めずにプロセスを再起動できるという理屈だが,QUIT するのをよく忘れるので,あんま使ってない.
サブディレクトリで運用
アプリに依るんだろうけど,けっこう手間がかかるから,VirtualHost で運用できるなら,そっちのが楽.
redmineについては,そのうちまとめる.