首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不关闭正在运行的程序的情况下平滑地重启c++程序?

如何在不关闭正在运行的程序的情况下平滑地重启c++程序?
EN

Stack Overflow用户
提问于 2012-04-11 15:05:34
回答 2查看 1.1K关注 0票数 0

我有一个服务器程序,应该全天运行。如果我想改变它的一些参数,有没有比关机重启更好的方法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-11 15:10:52

有相当多的方法可以做到这一点,包括,但几乎肯定不限于:

你可以在一个单独的文件中维护参数,这样程序就会定期检查该文件,并将其内部information.

  • Similar更新为(1),但你可以向应用程序发送某种信号,让它立即重新读取该文件。

  • (1)或(2)你可以执行(1)或(2)操作,但要使用共享内存而不是配置文件。

  • 你可以让你的程序位于进程间通信对话的服务器端,这样客户端就可以打开到它的连接以提供新的参数。

  • (1)或(2)你可以使用共享内存而不是配置文件。

  • 你可以让你的程序位于进程间通信的服务器端,这样客户端就可以打开到它的连接来提供新的参数。从简单的消息队列到成熟的超文本传输协议服务器和相关页面的任何内容。

当然,所有这些都需要在你的程序中做大量的工作来让它去寻找新的信息。

你在做决定时应该考虑到这一点。到目前为止,实现最快的解决方案是在11:55左右(干净地)终止进程,然后立即重新启动它。它比较简单,因为您的代码可能已经具备了在启动时加载信息的能力,所以这可能是一个简单的cron一行程序。

有些人认为懒惰是一件坏事,但事实并非如此:-)

票数 4
EN

Stack Overflow用户

发布于 2012-04-11 15:58:17

如果服务器维护许多来自客户端的活动连接,则重新启动服务器进程是您应该考虑的最后一种方法。除了重新加载配置文件之外,在客户端和服务器之间插入代理进程也可以是另一种方法。

代理进程负责两件事。

a.维护来自客户端的连接,并将数据包转发到服务器进行处理。

b.判断当前服务器进程( server A)是否为活动的,如果不是,则自动切换到另一个服务器(Server B)。

然后,您可以通过重新启动服务器来更改参数,而无需担心中断客户端,因为总是有两个(或更多)服务器在运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10101391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档