1

我正在运行一个带有 puma 服务器和 nginx 的 jruby 项目。我使用 puma-manager upstart 服务运行 puma。只要清理了我设置要使用的服务的套接字文件(在尝试启动服务之前已删除),一切都可以正常工作。当套接字文件不存在时,服务会创建它,nginx 可以看到它就好了。但是,当停止/启动或重新启动 puma 时,套接字文件仍然存在,并且我收到错误消息:IOError: Connection denied,当尝试连接到套接字时。删除套接字可以解决问题。

问题是必须手动删除这个套接字文件在生产中很烦人而且很麻烦。

我正在使用 puma.rb 配置启动 state_file 和 pidfile 选项设置正确。我认为这会为我正确处理这些文件。每次重置服务器时如何删除此套接字文件的任何建议或帮助?

4

1 回答 1

2

经过一番搜索后,似乎 Puma 在某些情况下无法在关闭时清理自己的套接字文件。当我有时间时,我可能会将其添加到项目中并向他们发送拉取请求。但是,我确实找到了一个相当简单的解决方案。在 upstart conf 文件中(他们提供 puma.conf 和 puma-manager.conf,但您可以创建自己的),在运行“bundle exec puma”命令的行之前,我添加了一个检查以查看套接字是否存在。如果是,我将其删除。如果没有,我继续使用 bundle exec。似乎像魅力一样工作。

于 2014-03-15T15:42:48.753 回答