我是 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 服务。