我的问题是我不想用命令停止 apache 守护进程./apache2 stop
来自/etc/init.d
(我知道该怎么做)。我不希望 apache 服务/etc/init.d
在系统启动时自动启动。但我还需要将服务保留在文件夹中init.d
。我该怎么做?我必须更改服务脚本中的某些字段吗?
答案1
根据您的发行版,您应该能够执行命令以在启动时禁用该服务。执行此操作后,它将停止,直到您手动启动它。以下是不同发行版的一些示例:
- Ubuntu/Debian:
update-rc.d -f apache2 remove
- Gentoo:
rc-update del apache2
- ArchLinux:
systemctl disable apache2
答案2
这是一个老话题,但我会添加我刚刚学到的知识来帮助其他来这里的人。
对于 Debian,给出的答案的问题在于,下次更新软件时,更改将被撤消。从手册页中update-rc.d
:
一个常见的系统管理错误是删除链接,认为这将“禁用”服务,即这将阻止服务启动。但是,如果所有链接都已删除,则下次升级软件包时,软件包的 postinst 脚本将再次运行 update-rc.d,这将重新安装链接到其出厂默认位置。
我认为最好使用 disable 指令:
sudo update-rc.d apache2 disable
这样做的好处是该enable
指令可以逆转这一变化。