禁用从所有运行级别开始的服务?

我有一个服务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”,所以对此运行级别禁用。

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

    • 卸载它
    • 做一个本地转移/etc/init.d/xyz脚本(这样,没有工具会发现它)
    • 使用/滥用相应软件包的configuration文件以引发该脚本的提前退出(例如,如果源自init脚本,则在/ etc / default / xyz中提前“退出”)
    • 查看该init脚本中预定义的“官方”方式,不启动该守护进程

    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版本,许多人阅读这个线程将会明白这一点。

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

     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来禁用它。