我有一项服务foo
,目前在运行级别3及以上启动。如何在不使用 的情况下阻止它这样做update-rc.d foo stop 3 .
(如果我理解正确的话)会在每次运行级别更改时关闭服务。
(即,如果我处于运行级别1并启用foo
,那么当我更改为运行级别3时,它将被禁用,不是吗?)
运行 Debian GNU/Linux Lenny。
我有一项服务foo
,目前在运行级别3及以上启动。如何在不使用 的情况下阻止它这样做update-rc.d foo stop 3 .
(如果我理解正确的话)会在每次运行级别更改时关闭服务。
(即,如果我处于运行级别1并启用foo
,那么当我更改为运行级别3时,它将被禁用,不是吗?)
运行 Debian GNU/Linux Lenny。
“停止”术语不会阻止守护程序启动,而是在进入指定的运行级别时将其关闭。
如果您只想从单个运行级别中删除服务/守护程序,如 bei freiheit
update-rc.d
所指出的,或者只是从中删除符号链接,其中 X 是您的运行级别。如果您不希望服务自动启动,可以解决问题。/etc/rcX.d/
update-rc.d -f foo remove
使用 sysv-rc-conf 配置 Linux 启动应用程序:
正如其他人所指出的,这里也是cmd 行的update-rc.d。
例如,运行
从所有运行级别禁用 apache2。
短的:
没有可靠的方法可以快速做到这一点。
长:
当前的 Debian(Debian 自 2012-06-01 起不稳定)目前没有可靠的捷径来持续禁用服务/守护进程。– 因为守护程序包的升级无条件地运行“/etc/init.d/package restart”,是否在此运行级别禁用它。
为确保守护程序不启动,您可以:
Debian 中的初始化脚本有/曾经(?)一些 init-policy-something 步骤,它应该填补这个缺失的功能。- 我尝试使用它,发现它很复杂,发现了一个错误,然后再也没碰过它。
更新:
切换到“systemd”,替代“initd”。存在一个 debian 包,您可以使用以下方式禁用服务:
运行此命令
apt-get 安装 rcconf
安装后,在 SSH 中运行 rcconf,您将收到一个对话框,显示所有设置为在启动时运行的服务。通过按空格键来禁用/启用特定选项,然后您就完成了,只需单击“确定”,该服务就不会在下次启动时再次启动。多年来一直在使用它。对于像我这样的 Debian/Ubuntu 用户来说非常方便的工具。
我很困惑你想要完成什么。
你想让 foo 运行在什么运行级别?
如果您总是希望它运行,请使用
update-rc.d foo defaults
; 这将在 0、1 和 6 中停止它,同时让它在 2、3、4 和 5 中运行。(1 不应该运行任何东西,除了 shell,0 和 6 停止并重新启动)如果要准确指定要运行的运行级别:
我认为这可以完成工作:insserv -r foo
从 Debian7 开始使用 insserv
输出所有服务及其运行级别信息
从所有运行级别中删除列出的脚本
如果要指定运行级别。
记得把service改成程序的名字。
在基于红帽的系统上,您可以使用
从运行级别中删除服务器
在基于 debian 的系统上,所有服务都应该由 /etc/rc?.d/ 目录中的文件启动,然后这些文件具有指向 /etc/init.d/ 目录中相应文件的符号链接。如果您希望服务不默认启动,那么您可以从 /etc/rc?.d 目录重命名/删除它,并且只要启动链接之一仍然出现在其中一个中,您的更改将在包升级时保留其他(3,4 和 5)目录。或者您可以使用 update-rc.d 命令来更改链接,如果您想在之后启动服务,那么您可以使用 /etc/init.d/service_name start 如果您离开开始,它将结束为您提供可以使用的选项,例如停止、重新启动、重新加载...
我认为您可以使用 sysv-rc-conf 禁用它。
Ubuntu 的 Bootup Manager 有点像 sysv-rc-conf light,是一个更友好的 GUI 版本,许多阅读此主题的人都会欣赏这一点。
http://www.marzocca.net/linux/bum.html