it-swarm.cn

禁止从所有运行级别启动服务?

我有一个服务foo,当前从运行级别及以上开始。如何在不使用update-rc.d foo stop 3 .的情况下阻止它这样做,如果我理解正确的话,它将在每次运行级别更改时关闭服务。

(即,如果我处于运行级别1并启用了foo,那么当我更改为运行级别时将被禁用,不是吗?)

运行Debian GNU/Linux Lenny。

61
lfaraone

“停止”一词不会阻止守护程序启动,而是在进入指定的运行级别时将其关闭。

如果您只想从单个运行级别中删除服务/守护程序,则可以在_freiheit仅删除symlink中指出update-rc.d/etc/rcX.d/,其中X是您的运行级别。如果您不希望该服务自动启动,则update-rc.d -f foo remove可以解决问题。

58
PEra

使用sysv-rc-conf配置Linux启动应用程序

apt-get install sysv-rc-conf

正如其他人指出的,cmd行也 pdate-rc.d

例如,运行

update-rc.d Apache2 disable

从所有运行级别禁用Apache2。

56
Not Now

短:

没有可靠的方法可以快速执行此操作。

长:

当前的Debian(从2012年6月1日开始,Debian不稳定)目前没有可靠的短期方法来始终禁用服务/守护程序。 –因为守护程序软件包的升级无条件地运行“ /etc/init.d/package restart”,所以是否为此运行级别禁用了它。

为确保守护程序不会启动,您可以:

  • 卸载它
  • 对/etc/init.d/xyz脚本进行本地转移(这样,没有工具可以找到它)
  • 使用/滥用相应程序包的配置文件来引起该脚本的提前退出(例如,如果它是从init脚本中获取的,则在/ etc/default/xyz中提前放置一个“退出”)
  • 在该init脚本中查找不启动该守护程序的预定义“官方”方式

Debian中的init脚本有一些init-policy-something步骤,应该填补了这一缺失的功能。 –我尝试使用它,发现它很复杂,发现了一个错误,再也没有碰过它。

更新:

切换到“ systemd”,替代“ initd”。存在一个debian软件包,您可以通过以下方式禁用服务:

cd /etc/systemd/system
ln -s /dev/null xyz.service
15
Robert Siemer

运行此命令

apt-get安装rcconf

安装后,在SSH中运行rcconf,您将收到一个对话框,显示所有设置为在引导时运行的服务。通过按Space来选择禁用/启用特定项,然后完成操作,只需单击Ok,该服务就不会在下次启动时再次启动。)使用了多年。适用于像我这样的Debian/Ubuntu用户的便捷工具。

5
Mark Levinsky

我认为这可以完成工作:insserv -r foo

3
user38551

我很困惑您要完成的工作。

您要foo进入哪个运行级别?

如果您始终希望它运行,请使用update-rc.d foo defaults;这将使其在0、1和6中停止运行,而使其在2、3、4和5中运行。(除了Shell,1不应运行任何东西,0和6都应停止并重新启动)

如果要确切指定要运行的运行级别:

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
2
freiheit

从Debian7开始使用insserv

输出所有服务及其运行级别信息

insserv --showall

从所有运行级别中删除列出的脚本

insserv --remove [specify_script]
1
cocoa

为什么不将启动脚本备份到其他位置,然后将其删除到/etc/init.d/中?如果update-rc.d不起作用。

0
Kosaka Honoka

Ubuntu的Bootup Manager是sysv-rc-conflight的一种,它是一个更友好的GUI版本,许多阅读此线程的人将对此表示赞赏。

http://www.marzocca.net/linux/bum.html

0
the_guv

在基于Red Hat的系统上,您可以使用

chkconfig httpd off
chkconfig httpd --del

从运行级别删除服务器

在基于debian的系统上,所有服务都应该由/etc/rc?.d/目录中的文件启动,然后这些文件具有指向/etc/init.d/目录中相应文件的符号链接。如果您希望某个服务默认情况下不启动,则可以从/etc/rc?.d目录中重命名/删除该服务,并且只要其中一个启动链接仍出现在其中一个启动链接中,您的更改将保留在软件包升级中。其他(3,4和5)目录。或者,您可以使用update-rc.d命令更改链接,如果要在之后启动服务,则可以使用/etc/init.d/service_name start,如果将start保留在结尾,则会给您可以使用的选项,例如停止,重新启动,重新加载...

我认为您可以使用sysv-rc-conf禁用它。

0
Rodent43
Sudo update-rc.d SERVICE disable

如果要指定运行级别。

Sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

记住将service更改为程序名称。

Sudo service SERVICE restart
0
Eddie