我有一个服务器程序,应该每天全天运行。如果我想更改它的一些参数,有没有办法而不是关闭然后重启方式?
答案 0 :(得分:4)
有很多方法可以做到这一点,包括但几乎肯定不限于:
您可以将参数保存在单独的文件中,以便程序定期检查该文件并更新其内部信息。
与(1)类似,但您可以向应用程序发送某种信号,以便立即重新读取该文件。
您可以使用共享内存而不是配置文件来执行(1)或(2)。
您可以让您的程序位于IPC对话的服务器端,以便客户端可以打开与其的连接以提供新参数。从简单的消息队列到完整的HTTP服务器和相关页面的任何内容。
当然,所有这些都需要在您的程序中进行大量工作才能让它查找新信息。
在做出决定时,您应该考虑到这一点。到目前为止,实现的最快解决方案就是(干净地)在类似于晚上11:55的时候终止进程,然后立即重新启动它。它更简单,因为您的代码可能已经 能够在启动时加载信息,因此这可能是一个简单的cron
单行。
有些人说懒惰是一种坏的事情,但事情并非总是如此: - )
答案 1 :(得分:0)
如果服务器维护了许多来自客户端的活动连接,则重新启动服务器进程是您应该考虑的最后一种方式。除了重新加载配置文件之外,在客户端和服务器之间插入代理进程可能是另一种方式。
代理流程负责2件事。
一个。维护与客户端的连接并将数据包转发到服务器以进行处理。
湾判断天气当前服务器进程(服务器A)是否处于活动状态,如果不存在,则自动切换到另一台服务器(服务器B)。
然后您可以通过重启服务器更改参数,而不必担心中断客户端,因为总有两个(或更多)服务器在运行。