unicornとunicorn_railsのオプションの違い
unicorn
とunicorn_rails
はほとんど同じ挙動をして、
application serverを立ち上げてくれますが、一部オプション指定の意味が違います。
ちょっとハマったので書いておくことにします。
結論
unicorn
のオプション-E
はRACK_ENV
を設定unicorn_rails
のオプション-E
はRAILS_ENV
を設定
参考: http://unicorn.bogomips.org/
経緯1
Capistrano 3を導入しまして、unicornを使っていたので無邪気に
を使っていました。(僕の環境では0.3.2) 普通に動かしていたんですが、muninがunicornのmemory statusをうまく取得できていないようでした。
該当のmuninのplugin
pluginに目をちゃんと通すとわかるんですが、
def memory_usage result = { :master => {master_pid => nil}, :worker => {} } ps_output = `ps auxw | grep unicorn_rails` ps_output.split("\n").each do |line|
なるほど。unicorn_rails
でgrepしてます。
ということで、よく調べてみると、sepastian-capistrano3-unicorn
のデフォルトでは
unicorn
を使ってunicornプロセスを起動していて、このままではこのunicorn_memory_status
に引っかからないわけです。
ということで、unicorn立ち上げをunicorn_rails
を通して実行する必要があるわけですがこれはわけなく行えます。
sepastian-capistrano3-unicorn
は、unicorn_bin
というパラメータを用意してまして、これのデフォルトがunicorn
になっているわけなので、ここを変更する。
RAILS_ROOT/config/deploy.rbに下記記述を追記します。
set :unicorn_bin, ->{"unicorn_rails"}
(ラムダで囲んでんのは特に深い意味は無いんですが、評価時にいろいろ変更するようなモノが多いので念のため標準的にこうするようにしています。)
とここで世界は平和に終ると思っていました。
経緯2
unicornの時の-E
パラメータがRACK_ENV
であるということは理解していたので、RAILS_ENV
をunicorn実行前に設定するようにしてたわけです。
こんな感じで
RAILS_ENV=hogehoge; unicorn -E development .....
僕はVM上でrailsを動かすコトが多くて、vm
というRAILS_ENVをつくっていました。
しかしunicorn_rails
に変更してみたら、僕のVMで急にunicornが立ち上がらなくなりました。
RAILS_ENV=vm; unicorn_rails -E development .....
どうも、dababase.ymlにadapterの指定がない的なエラーがはかれていて、おかしーなーと思ったんです。 と、ここで気付きました。
-E
オプションが、RAILS_ENVを上書いていることを。
んで、下記をみた
なるほどね。
以上!
rubyをsublimetext2でcode整形
perl tidyみたいな感じでフォーマットしたい。
https://github.com/CraigWilliams/BeautifyRuby つかってみた。
cmd + shift + p Package Control: Install Packageと打つ BeautifyRuby
デフォルトで下記のようにしてフォーマット
ctrl + cmd + k
なんかセーブのタイミングでフォーマットしてくれるモードがあるっぽいので、 あとでつかってみようかな。
Sublime Text 2 を設定してみた1
会社の同僚やら、上司やらが使い始めたsublime textを僕も使ってみたいと思い、もろもろ設定してみた記録です。 いまのところemacsをつかっているのですが、乗り換えてもいいかもと、思い始めました。。
ターミナルから立ち上げる設定
下記URLよりダウンロード
そしてインストールする
ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sblm
Package Controll
いろんなパッケージを簡単にインストールするための設定
Ctrl + `
もしくは、
メニュー「view」 -> Show Console
からの下記打ち込み
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print('Please restart Sublime Text to finish installation')
emacsのキーバインド
個人的にはかなりemacsな感じでつかえてつかいやすい
⌘ + shift + p Package Control: Add Repository
下記リポジトリを追加 * https://github.com/grundprinzip/sublemacspro
⌘ + shift + p Package Control: Install Package sublemacspro
Markdownを書く時の設定
もろもろ
強調とかが便利に保管されます。
⌘ + shift + p Package Control: Install Package MarkdownEditing
シンタックスハイライト
下記ブログより
cd ~/Library/Application Support/Sublime\ Text\ 2/Packages/Color\ Scheme\ -\ Default vim Monokai.tmTheme
上記で開いたファイルの<\array>
より前に
下記を貼付けるよ。
<dict> <key>name</key> <string>Markdown: Linebreak</string> <key>scope</key> <string>text.html.markdown meta.dummy.line-break</string> <key>settings</key> <dict> <key>background</key> <string>#A57706</string> <key>foreground</key> <string>#E0EDDD</string> </dict> </dict> <dict> <key>name</key> <string>Markdown: Raw</string> <key>scope</key> <string>text.html.markdown markup.raw.inline</string> <key>settings</key> <dict> <key>foreground</key> <string>#269186</string> </dict> </dict> <dict> <key>name</key> <string>Markdown: Punctuation for Inline Block</string> <key>scope</key> <string>punctuation.definition.raw.markdown</string> <key>settings</key> <dict> <key>foreground</key> <string>#269186</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Heading</string> <key>scope</key> <string>markup.heading</string> <key>settings</key> <dict> <key>fontStyle</key> <string>bold</string> <key>foreground</key> <string>#cb4b16</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Italic</string> <key>scope</key> <string>markup.italic</string> <key>settings</key> <dict> <key>fontStyle</key> <string>italic</string> <key>foreground</key> <string>#839496</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Bold</string> <key>scope</key> <string>markup.bold</string> <key>settings</key> <dict> <key>fontStyle</key> <string>bold</string> <key>foreground</key> <string>#586e75</string> </dict> </dict> <dict> <key>name</key> <string>Markdown: Punctuation for Bold, Italic</string> <key>scope</key> <string>punctuation.definition.bold.markdown, punctuation.definition.italic.markdown</string> <key>settings</key> <dict> <key>foreground</key> <string>#586e75</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Underline</string> <key>scope</key> <string>markup.underline</string> <key>settings</key> <dict> <key>fontStyle</key> <string>underline</string> <key>foreground</key> <string>#839496</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Quote</string> <key>scope</key> <string>markup.quote</string> <key>settings</key> <dict> <key>fontStyle</key> <string>italic</string> <key>foreground</key> <string>#268bd2</string> </dict> </dict> <dict> <key>name</key> <string>Markup: Separator</string> <key>scope</key> <string>meta.separator</string> <key>settings</key> <dict> <key>background</key> <string>#eee8d5</string> <key>fontStyle</key> <string>bold</string> <key>foreground</key> <string>#268bd2</string> </dict> </dict>
Markdownのプレビュー
Markdownをプレビューできるようにする いちいちMarkdownのプレビューサービスとか、つかわなくてすむというのはらくちんでいい。
⌘ + shift + p Package Control: Install Package Markdown Preview
自動ブラウザリロード
Markdown編集保存時などに、自動的にブラウザをリロードしてくれる設定
⌘ + shift + p Package Control: Install Package Live Reload
次にchromeにextensionをインストールする