ruby-on-rails – puma start导致“已经有服务器绑定:”错误
发布时间:2020-12-17 02:08:10 所属栏目:百科 来源:网络整理
导读:我无法可靠地重现这个问题,所以我将描述正在发生的事情,并希望你们中的一个聪明的美洲狮孩子可以帮助我. 我总是在部署过程结束时停止并启动美洲狮.我运行pumactl -F config_path停止,工作,然后命令puma -q -d -e staging -C config_path,有时(并非总是)导致
我无法可靠地重现这个问题,所以我将描述正在发生的事情,并希望你们中的一个聪明的美洲狮孩子可以帮助我.
我总是在部署过程结束时停止并启动美洲狮.我运行pumactl -F< config_path>停止,工作,然后命令puma -q -d -e staging -C< config_path>,有时(并非总是)导致以下错误: [12802] Puma starting in cluster mode... [12802] * Version 2.11.3 (ruby 2.1.2-p95),codename: Intrepid Squirrel [12802] * Min threads: 2,max threads: 4 [12802] * Environment: staging [12802] * Process workers: 2 [12802] * Phased restart available [12802] * Listening on unix:///<app_dir>/tmp/puma/sockets/puma.sock <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/binder.rb:284:in `add_unix_listener': There is already a server bound to: <app_dir>/tmp/puma/sockets/puma.sock (RuntimeError) <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/binder.rb:124:in `block in parse' <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/binder.rb:82:in `each' <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/binder.rb:82:in `parse' <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/cluster.rb:325:in `run' <ruby_path>/2.1.0/gems/puma-2.11.3/lib/puma/cli.rb:216:in `run' <ruby_path>/2.1.0/gems/puma-2.11.3/bin/puma:10:in `<top (required)>' <ruby_path>/2.1.0/bin/puma:23:in `load' <ruby_path>/2.1.0/bin/puma:23:in `<main>' 如果我之后尝试再次运行相同的puma start命令,它会起作用. 这是我的puma配置: #!/usr/bin/env puma directory "<app_dir>/current" rackup "<app_dir>/current/config.ru" environment "staging" pidfile "<app_dir>/tmp/puma/pid" state_path "<app_dir>/tmp/puma/state" activate_control_app "<app_dir>/tmp/puma/sockets/pumactl.sock" stdout_redirect "<app_dir>/shared/log/puma.error.log","<app_dir>/shared/log/puma.access.log",true threads 2,4 bind "unix:///<app_dir>/tmp/puma/sockets/puma.sock" workers 2 我的问题: >如何重现此错误? 解决方法
而不是运行两个命令……
pumactl -F <config_path> stop puma -q -d -e <env> -C <config_path> 只需使用restart命令: pumactl -F <config_path> restart 说明 美洲狮README有一个关于Restarting的部分,其中没有提到一个接一个地调用停止和启动命令.由于该用例不受支持,使用已建立的方法重新启动Puma服务器很可能会解决此问题. 注意 我无法一致地重现这个美洲狮错误,所以我不能100%确认使用pumactl重启修复了这个问题. (即使Puma缺乏对pumactl stop的支持,其次是puma意味着它确实如此.)如果有人在使用支持的pumactl重启时继续遇到此问题,请告诉我,以便我可以修改此答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |