我有一个简单的 sinatra 应用程序,我在 nginx 后面的 jruby 上使用 puma 提供服务。
我已经启动并运行了我的示例应用程序并且工作正常。
我现在正尝试通过发送 SIGUSR1 信号手动重新启动 puma 服务器,如puma docs 中所述。但是,我没有导致服务器重新启动,而是开始收到 502 bad gateway 错误。nginx 日志显示:
013/10/17 20:40:12 [error] 755#0: *25 connect() to unix:///var/run/mysockets/te
st_app.sock failed (111: Connection refused) while connecting to upstream, clien
t: <my ip>, server: jonahtest.example.com, request: "GET / HTTP/1.1", upstr
eam: "http://unix:///var/run/mysockets/test_app.sock:/", host: "jonahtest.example
.com"
因此,它不会重新启动,而是停止工作。以下是我发出 SIGUSR1 信号的方式:
deploy@server:/var/www/webricktest$ jobs -p
863
deploy@server:/var/www/webricktest$ kill -s SIGUSR1 863
deploy@server:/var/www/webricktest$ jobs -p
863
[1]+ User defined signal 1 puma -e production -b unix:///var/run/mysockets/test_app.sock
deploy@server:/var/www/webricktest$
此后不久,原始 puma 进程和用户定义的信号都自行消失了,如果我jobs -p
再次运行,我什么也得不到。但是,套接字仍保留在 /var/run/mysockets/test_app.sock,我必须手动rm
重新启动 puma。
我的问题是:为什么kill -s SIGUSR1 <pid>
重启 puma 不起作用?我怎样才能让它工作?
谢谢!