如何使/etc 文件夹下的配置更改生效?

如何使/etc 文件夹下的配置更改生效?

我是 Ubuntu 新手,最近正在尝试学习 Ubuntu。现在我遇到了一个非常严重的问题,出于某些原因,我需要更新配置文件,如 httpd.conf、hosts.deny 等,并且为了使这些更改生效,每次我都重新启动 Ubutn 服务器机器,这是完全不允许的,会产生严重影响。我知道 Ubuntu 有很多种配置文件,包括系统本身的配置文件,或用户应用程序的配置文件等,所以我打算问的问题是:

1、有人能总结一下 Ubuntu 中的配置文件类型列表吗?

2、有什么方便的方法可以使这些更改在不重新启动机器的情况下生效?

提前致谢。

答案1

这取决于服务,但大多数情况下涉及sudo service <service name> reload

sudo service apache2 reload
sudo service squid3 reload
sudo service sshd reload

如果操作返回:

$ sudo service motd reload
Error: argument 'reload' not supported

你可以试试restart

sudo service motd restart

如果这也不起作用,那么可以使用stop和的组合start

sudo service motd stop
sudo service motd start

答案2

有些更改会立即生效,因为每次需要时都会查阅 /etc 文件。例如,如果您更新 /etc/hosts(或您给出的示例中为 /etc/hosts.deny),则它会立即生效,因为下次需要内容时会重新读取该文件。

如果您知道与配置文件相关的服务,则重新加载或重新启动该服务 - 请参阅 Braiam 的综合解答。

如果您不知道该文件与哪项服务相关,那么也许您不应该编辑它?:-)

一个选项是查看可用服务列表并进行猜测。该service命令调用了 init.d 脚本,因此

$ ls /etc/init.d

将为您提供服务列表。

另一个选择是查找配置文件属于哪个包。询问dpkg

# dpkg -S /etc/ntp.conf
ntp: /etc/ntp.conf

这告诉我 /etc/ntp.conf 属于 ntp 包 - 并且确实有一个可以重新加载或重新启动的 ntp 服务。

相关内容