当前位置: 首页>>技术教程>>正文


如何在ubuntu 10.10中禁用新贵服务?

, ,

问题描述

在10.10版本中,使用upstart代替sysvinit。

通过删除/etc/init/blah.conf中的相应文件,可以删除不需要的烦人的新贵服务。

但是,这似乎是一种繁重的做法。您如何正确配置新贵,以便能够通过命令行有选择地打开和关闭这些服务?

作为一个实际示例,此处列出的使用rcconf关闭gdm的答案不再起作用:How do I prevent GDM from running at boot on Ubuntu?

最佳答案

如果在/etc/init.d中查看,您会注意到通过upstart配置的任何服务都只是/lib /init /upstart的符号链接,因此从/etc/init.d中删除它们只会删除链接-而不是脚本。

如果您要使用此接口,可以安装chkconfig软件包(apt-get install chkconfig),该软件包提供了有用的命令行工具:

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

您可以使用以下方法启用/禁用特定run-levels的服务(或仅打开和关闭它们):

# chkconfig -s <service> <state/runlevels>

例如:

# chkconfig -s gdm off

完全关闭它

# chkconfig -s gdm on

用defaultsm打开它或

# chkconfig -s gdm 34

仅在运行级别3和4上将其打开。

您通常会在基于RHEL的系统(CentOS,Fedora等)上找到此命令。

更新

这特定于Ubuntu和gdm /kdm /等。

gdm启动时,它会调用新贵的配置文件/etc/init/gdm.conf

然后,该文件引用/etc /X11 /default-display-manager来查看它是否是系统的默认显示管理器-如果已启动,它将启动。

/etc /X11 /default-display-manager仅包含:

/usr/sbin/gdm

您可以将其替换为另一个显示管理器,或者完全删除该文件,并且该文件不会启动gdm。

/etc/init/gdm.conf文件中的一行:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

意思是“如果文件/etc /X11 /default-display-manager不存在,或者不包含/usr/sbin/gdm,则退出”

次佳答案

我一直发现sysv-rc-conf工具非常有帮助,它具有非常好的&易于使用的界面。

像这样安装:

sudo apt-get update
sudo apt-get install sysv-rc-conf

像这样使用它:

sudo sysv-rc-conf

第三种答案

只需看一下man 5 init,您就会找到一个更合适的解决方案。简短示例:假设我们有一个名为”foobar”的服务,那么将有一个名为/etc/init/foobar.conf的文件,其配置为upstart。现在,您不想删除该文件,也不想对其进行修改,但是您既不想运行该服务,又不想?因此,在其旁边放置一个覆盖文件:/etc/init/foobar.override,其中包含(可选的带有说明的标头和)标头,而不是start on /stop on行,而是放置一个带有单词的行:manual。这样,您可以告诉upstart基本上使用foobar.conf,但是要覆盖启动定义,以仅在手动执行(在本示例中为service foobar start)时启动该服务。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10596.html,未经允许,请勿转载。