UnicornでUnix domain socketを使う場合は絶対パスで指定しなければならない
listen 8080 # TCP listen "tmp/unicorn.sock" # Unix Domain Socketのつもり
と指定するとそんなListenの方法ないよー、と怒られた
I, [2013-06-26T09:22:21.178723 #11457] INFO -- : listening on addr=0.0.0.0:8080 fd=8 F, [2013-06-26T09:22:21.179525 #11457] FATAL -- : error adding listener addr=tmp/unicorn.sock /u/apps/..../gems/unicorn-4.6.2/lib/unicorn/socket_helper.rb:149:in `bind_listen': Don't know how to bind: tmp/unicorn.sock (ArgumentError)
Unicornのソースコード
https://github.com/schneems/unicorn/blob/master/lib/unicorn/socket_helper.rb
def bind_listen(address = '0.0.0.0:8080', opt = {}) return address unless String === address sock = if address[0] == ?/ if File.exist?(address) if File.socket?(address) begin UNIXSocket.new(address).close
1文字目がスラッシュからはじまってるかどうかで判定してるんですね...そうですか...
つまり、絶対パスじゃないと無理