我有一个服务foo
目前开始在运行级别3和以上。 我该如何阻止它,而不使用update-rc.d foo stop 3 .
(如果我理解正确的话)会在每次运行级别更改时closures服务。
(即,如果我在运行级别1并启用了foo
,那么当我改变到运行级别3时 ,它将被禁用,不是?)
运行Debian GNU / Linux Lenny。
“停止”术语不会阻止守护进程启动,而是在进入指定的运行级别时closures守护进程。
如果你只是想从一个运行级别中删除一个服务/守护进程, update-rc.d
指出bei freiheit,或者干脆从/etc/rcX.d/
删除符号链接 ,其中X是你的运行级别。 如果你不想让服务自动启动, update-rc.d -f foo remove
将会有效。
使用sysv-rc-confconfigurationLinux启动应用程序 :
apt-get install sysv-rc-conf
正如其他人指出的,这里也是cmd行的update-rc.d 。
例如,运行
update-rc.d apache2 disable
从所有运行级别禁用apache2。
短:
没有可靠的方法来迅速做到这一点。
长:
目前的Debian(Debian unstable截至2012年6月1日)目前还没有可靠的简捷方法来一致禁用服务/守护进程。 – 因为守护程序软件包的升级无条件地运行“/etc/init.d/package restart”,所以对此运行级别禁用。
为了确保守护进程不会启动,您可以:
Debian中的init脚本存在/?(?)了一些init-policy,这是为了弥补这个缺失的function。 – 我试图使用它,发现它很复杂,发现了一个bug,并且再也没有碰过它。
更新:
切换到“systemd”,替代“initd”。 存在一个debian软件包,你可以用这样的东西来禁用一个服务:
cd /etc/systemd/system ln -s /dev/null xyz.service
运行这个命令
apt-get install rcconf
安装完成后,在SSH中运行rcconf,您将收到一个对话框,显示所有设置为在启动时运行的服务。 通过按空格来禁用/启用特定的选项,你就完成了,简单点击确定,该服务将不会再麻烦下一次启动时再次启动。 正在使用这个多年。 非常方便的工具,像我这样的Debian / Ubuntu用户。
我很困惑你想要完成什么。
你想运行什么运行水平?
如果您总是希望它运行,请使用update-rc.d foo defaults
; 这将停止在0,1和6,而使它在2,3,4和5运行。(1不应该运行任何东西,但shell,0和6停止和重新启动)
如果您想确切指定要运行的运行级别:
update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
我认为这可以做到这一点:insserv -r foo
从Debian7开始使用insserv
输出所有服务和运行级别的信息
insserv --showall
从所有运行级别中删除列出的脚本
insserv --remove [specify_script]
Ubuntu的启动pipe理器是一种sysv-rc-conf light ,一个更友好的GUI版本,许多人阅读这个线程将会明白这一点。
sudo update-rc.d SERVICE disable
如果你想指定运行级别。
sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]
请记住将服务更改为程序的名称。
sudo service SERVICE restart
你为什么不在别的地方备份启动脚本,并在/etc/init.d/中删除它? 如果update-rc.d不起作用。
在基于红帽子的系统上,你可以使用
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,如果你离开开始,它会给你可以使用的选项,如停止,重新启动,重新加载…
我想你可以使用sysv-rc-conf来禁用它。