重新启动Poco HTTP服务器

Restart Poco HTTP Server

本文关键字:服务器 HTTP Poco 重新启动      更新时间:2023-10-16

我已经使用Poco库实现了一个HTTP服务器。它运行REST服务,一切正常。

HTTP服务器在Linux系统上作为守护进程运行。

现在,我想在REST服务中实现一个功能,该功能可以重新启动HTTP服务器守护进程本身。

我使用popen调用shell命令来重新启动守护进程。守护进程重新启动,我可以通过netstat -pltenps -aux看到服务器获得了一个新的pid,并且正在侦听端口80但它不处理任何传入的HTTP请求

如果我直接在终端中键入shell命令,守护进程将重新启动,获得一个新的pid并处理传入的HTTP请求。

可能出了什么问题?

编辑

我也尝试过用system(command);std::thread(std::system,command).detach();调用shell命令,但结果是一样的。

我找到了一个解决方案。

在创建Poco::Net::HTTPServer时,我会创建一个Poco::Net::ServerSocket。在重新启动守护进程之前,我需要关闭那个套接字。