我可以在linux上识别正在进行的Web请求吗?

时间:2015-04-13 08:34:13

标签: linux perl websocket

我有一个使用websockets的perl Catalyst应用程序。我不得不重新启动应用程序的错误修正和功能。 为此,我更改了nginx conf,重新加载nginx并使用新代码启动并行应用程序。然后重新启动旧应用程序并终止中间应用程序。 这条逻辑链的问题是,我可能会杀死正在进行的请求。所有新请求都处理得很好,这不是问题。 所以我的问题是,我可以以某种方式检测到,套接字有持续的请求吗?

或者,我应该使用一个穷人的解决方案,并在杀死之前等待30秒?

Nginx相关部分(现场):

upstream backend {
    ip_hash;

    server unix:/tmp/frontend.socket;
    server unix:/tmp/frontend_redundant.socket down;
}

(重启):

upstream backend {
    ip_hash;

    server unix:/tmp/frontend.socket down;
    server unix:/tmp/frontend_redundant.socket;
}

对于应用程序重启,我使用Daemon :: Control启动/停止。

1 个答案:

答案 0 :(得分:2)

根据此nginx guide,命令nginx -s quit(或kill -QUIT)执行正常关闭,等待工作进程完成当前请求的服务。