config.ruを実行しようとすると、「アクセプターなし」エラーと呼ばれる、デバッグできないように見える奇妙なエラーが発生します。
完全なエラーメッセージ:
eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)
このエラーの意味を誰かが知っていますか?ありがとう。
@ Fivellが言うように、問題は以前のインスタンスがthin
まだ実行されていることだと思います。ただし、別のポートで開始するのではなく、前のインスタンスを強制終了することをお勧めします。このようなものでうまくいくはずです(ここで問題を再現したので、これは私の側の実際の出力です):
telemachus caps $ ps ax | grep ruby
153 ?? S 7:52.18 ruby /usr/local/bin/djsd
15801 ?? S 0:00.40 ruby caps.rb # this is our problem, get it's PID
15973 s000 S+ 0:00.00 grep ruby
telemachus caps $ kill -9 15801 # thin needs -9 - hard to kill
telemachus caps $ ps ax | grep ruby
153 ?? R 7:52.86 ruby /usr/local/bin/djsd
16057 s000 S+ 0:00.00 grep ruby
アプリをどのように起動したかによって、別のことが必要になる場合があります(またはgrep
を使用した場合など)。shotgun
rackup
問題は、ポートの使用が既にバインドされていることだと思います (アプリケーションを以前に起動した可能性があります) ポートを変更してみてください
rackup config.ru -p port #default port is 9292 change to something else
または薄い使用する場合
thin start -p port -a 0.0.0.0 -R config.ru #default port is 8080 change to something else
ゾンビ プロセスがなく、ポートがバインドされていないにもかかわらず、このエラーが発生します。
これは機能します:
thin -p9292 start
しかし、これはしません:
rackup