如何在 Linux 中停止启动时运行的程序。我想从启动中删除一些应用程序,以允许它们由supervisord
apache2 等管理
答案1
根据您的发行版,使用 chkconfig 或 update-rc.d 工具来启用/禁用系统服务。
在 redhat/suse/mandrake 风格的系统上:
sudo chkconfig apache2 off
在 Debian 上:
sudo update-rc.d -f apache2 remove
查看他们的手册页以获取更多信息。
答案2
如果您正在使用现代 Ubuntu 系统和其他一些发行版,您可能必须处理传统 init 脚本和 upstart 脚本的组合。其他答案涵盖了管理初始化脚本。以下是阻止 upstart 服务在启动时启动的一种方法:
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
此方法的问题是它不允许您使用以下方式启动服务:
# service start servicename
另一种方法是在您喜欢的编辑器中打开servicename.conf
文件并注释掉以以下内容开头的所有行:
start on
也就是说,将其更改为
#start on ...
其中“...”是之前“start on”之后的内容。这样,当您想要重新启用它时,您不必记住“开始”参数是什么。
最后,如果您有新版本的 upstart,您只需将“手动”一词添加到配置文件的末尾即可。您可以直接从 shell 执行此操作:
# echo "manual" >> /etc/init/servicename.conf
这将导致 upstart 忽略文件中前面的任何“start on”短语。
答案3
列出所有启动服务
systemctl
停止服务在启动时运行
sudo systemctl disable servicename
例如,如果我们需要在启动时停止运行 ssh 服务器
sudo systemctl disable sshd.service
我们可以使用以下命令再次启用此功能
sudo systemctl enable sshd.service
几乎每个 Linux 发行版都使用 systemd 来引导启动服务。所以上面的命令适用于大多数发行版。
答案4
在 Ubuntu 10.04 上,您可以从 GUI 控制一些启动程序。
System→ Preferences→Startup Applications