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


27

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

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

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

作为一个实际示例,此处列出的使用rcconf关闭gdm的答案不再起作用: 如何防止GDM在Ubuntu上启动时运行?


Nb。显然,某些版本的ubuntu在图形桌面的菜单中有一个“服务”项,可以对其进行配置。那不是我的。我特别在寻找命令行解决方案。
Doug

最新的答案在askubuntu上也阅读评论!
Marcello Nuccio


@Marcello Hm ...有话要说吗?“最新更新的答案”仍然是相同的答案。删除文件或手动删除文件的前几行。
道格,

最新的解决方案是echo manual >> /etc/init/<service>.override,并且仅在注释(和官方文档)中提及。我不容易找到它,所以才在这里提到它。
Marcello Nuccio

Answers:


19

如果您在/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 ....

您可以使用以下命令启用/禁用特定运行级别的服务(或仅打开或关闭它们):

# 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则退出”


那没用。就像rcconf一样,chkconfig不会将gdm列为要在任何运行级别启动的服务。但是,重新启动后会加载。chkconfig -s gdm off不会阻止它启动。
道格

2
这里有一个链接也暗示chkconfig不是适合使用的工具:ubuntuforums.org/showthread.php?t=1559266
Doug

我从不喜欢Ubuntu的启动公司-以及Linux的启动公司。它看起来总是那么凌乱和混乱。随时给我FreeBSD的命令。无论如何-特定于Ubuntu的显示管理器,您可以看到我的编辑内容……
Majenko 2011年

编辑后为正确的+1,其中包含新贵的详细信息。
道格

5

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

像这样安装:

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

像这样使用它:

sudo sysv-rc-conf

1
我不认为作品暴发户服务,但..
拉哈特·古普塔

3

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


2

我的建议是简单地注释掉所有“开始”和“停止”行。当我运行“ initctl show-config”以查看是否禁用了我想要的程序的自动启动时,这对我来说效果很好。


1

Upstart是一个事件驱动的初始化管理器,运行级别不是决定何时启动服务的主要机制。取而代之的是,在满足所有服务依赖项时启动服务,这在引导过程中允许更大的并行度,从而加快了引导过程。

使用Ubuntu 11.04,我可以通过编辑/etc/init/gdm.conf文件并删除所有“开始于”条目来禁用GDM。这是我的预编辑:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

这是我的后期编辑:

start on
stop on runlevel [016]

1
正确; 但是,这基本上不比仅移动/删除etc / init / gdm.conf文件好。我(仍然)感到惊讶,手动编辑配置文件似乎是执行此操作的唯一方法。
道格

1

这是一个解决方案:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@马特·詹金斯

我从不喜欢Ubuntu的启动公司-以及Linux的启动公司。它似乎总是那么凌乱而混乱。随时给我FreeBSD的命令。无论如何-特定于Ubuntu的显示管理器>您拥有我的编辑显示的内容...

Arch Linux有一个不错的初始化系统。但是,systemd会将其他任何初始化系统从行星中吹出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.