0

我有一个服务器程序,它应该每天全时运行。如果我想改变它的一些参数,有什么办法不是关闭然后重新启动吗?

4

2 回答 2

4

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

  1. 您可以在单独的文件中维护参数,以便程序定期检查该文件并更新其内部信息。

  2. 与 (1) 类似,但您可以向应用程序发送某种信号以使其立即重新读取文件。

  3. 您可以执行 (1) 或 (2),但使用共享内存而不是配置文件。

  4. 您可以让您的程序位于 IPC 对话的服务器端,以便客户端可以打开与它的连接以提供新参数。从简单的消息队列到成熟的 HTTP 服务器和相关页面的任何内容。

当然,所有这些都需要在您的程序中进行大量工作才能让它寻找新信息。

在做出决定时,您应该考虑到这一点。到目前为止,最快的解决方案是在晚上 11 点 55 分(干净地)终止进程,然后立即重新启动它。它更简单,因为您的代码可能已经能够在启动时加载信息,所以这可能是一个简单cron的单行。

有些人说懒惰是一件坏事,但情况并非总是如此:-)

于 2012-04-11T07:10:51.580 回答
0

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

代理进程负责两件事。

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

湾。判断当前服务器进程(服务器 A)是否处于活动状态,如果没有,则自动切换到另一台服务器(服务器 B)。

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

于 2012-04-11T07:58:17.267 回答