我正在尝试使用Bundler使用Supervisord设置Kibana。使用 Bundler 安装 Kibana 依赖项完全没有问题。我试着跑步,它奏效了。我还尝试在查看在 htop 中生成的进程时使用 Ctrl-C 杀死它,并且它起作用了。bundle exec ruby kibana.rb
但是,当使用 supervisord(或类似 SIGINT 或 SIGTERM 之类的信号)杀死 bundler 时,由它产生的两个孩子会存活下来。因此,如果在 supervisord 中重新启动 kibana 作业,则重新启动将失败,因为重新启动的作业将尝试分配的端口已在使用中。
据我所知,bundler exec 不应该分叉,据我所知,它不会。当它收到信号时,它的行为并不像我预期的那样。
我能做些什么?从捆绑器切换可能是一个解决方案,但它是不可取的。