在Linux中启动时停止运行程序


29

如何停止Linux启动时运行的程序。我想从启动中删除一些应用程序,以允许它们由supervisord例如apache2 管理


这就是为什么我没有标记它的原因...我正在寻找与所有不同发行版一起工作的所有版本。
Frozenskys 2010年

Answers:


29

根据您的发行版,使用chkconfig或update-rc.d工具来启用/禁用系统服务。

在redhat / suse / mandrake样式系统上:

sudo chkconfig apache2 off 

在Debian上:

sudo update-rc.d -f apache2 remove

查阅他们的手册页以获取更多信息。


为什么在基于Debian的发行版上需要-f(我认为很有效)?
Frozenskys

2
这里有两套文件正在播放。您已经在/etc/init.d/中获得了实际的初始化脚本,并且在运行级别目录/etc/rcrunlevel.d/中具有指向该脚本的链接。这些人指向/etc/init.d/中的脚本,如果不使用-f update-rd.d将会失败,除非/etc/init.d/中的脚本已被删除。如果您确实使用-f,则无论是否删除/etc/init.d/脚本,update-rc.d都会正确删除链接文件。
jacksonh

嗯,这很有意义,我忘记了运行级别脚本只是指向初始化脚本的链接。感谢您的额外说明。
Frozenskys

6

如果您使用的是现代Ubuntu系统和其他发行版,则可能需要结合使用传统的初始化脚本和暴发户脚本。其他答案涵盖了管理初始化脚本。以下是一种阻止启动时启动新贵服务的方法:

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

此方法的问题在于它不允许您使用以下方法启动服务:

# service start servicename

替代方法是servicename.conf在您喜欢的编辑器中打开文件,并注释掉以下列开头的所有行:

start on

也就是说,将其更改为

#start on ...

“ ...”是先前“开始”之后的位置。这样,当您要重新启用它时,您不必记住“开始”参数是什么。

最后,如果您有新版本的新贵,您只需在配置文件的末尾添加单词“ manual”。您可以直接从外壳执行此操作:

# echo "manual" >> /etc/init/servicename.conf

这将导致新贵将忽略文件中较早的任何“开始”短语。


2

在最新的Fedora和Future RHEL系统上

systemctl disable httpd.service

将禁用httpd服务


谢谢!我尝试了许多方法,但是此systmctl命令运行良好。
love.by.Jesus,

1

列出所有启动服务

    systemctl

在启动时停止服务运行

    sudo systemctl disable servicename

例如,如果我们需要在启动时停止运行ssh服务器

    sudo systemctl disable sshd.service

我们可以使用

    sudo systemctl enable sshd.service

几乎每个Linux发行版都使用systemd来引导启动服务。因此上述命令适用于大多数发行版。


欢迎来到U&L,并感谢您的贡献!我想指出的是,这个问题现在已有八年历史了,因此目前公认的答案是正确的。现在使用systemctl可能是正确的,但是对于另一个问题它是正确的。
杰夫·谢勒

@王子感谢您的详细解释。它帮助我了解了启动向导在我的Xubuntu中的工作方式。
love.by.Jesus,

0

与上面给出的Ubuntu和Redhat风格示例不同,Slackware和Arch Linux在启动时具有类似的停止/启动进程的方法。

在Slackware和Arch Linux中,sh脚本都存在于目录中/etc/rc.d,通常每个守护程序一个脚本,或者每个子系统一个脚本。

例如,Slackware使用脚本启动Apache Web服务器,该脚本/etc/rc.d/rc.httpd在系统启动期间的适当时间以“ start”作为参数调用。Arch linux具有不同名称的脚本,但是同样的事情还在进行。

为了防止在系统启动期间启动某些进程,请在Slackware上仅使/etc/rc.d中的相应脚本不可执行。为了防止Apache在下次启动时启动:

chmod -x /etc/rc.d/rc.httpd

要停止启动时启动的Apache: /etc/rc.d/rc.httpd stop 您需要是root用户。

Arch有点复杂。/etc/rc.conf文件是一个外壳脚本,具有数组DAEMONS。为了防止Apache在启动时启动,请在/etc/rc.conf中更改此行:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

到这行:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

要停止已经执行的apache,您/etc/rc.d/httpd stop将以root身份执行。


0

在Ubuntu 10.04上,您可以从GUI控制一些启动程序。

System→交通Preferences→交通Startup Applications

启动应用程序首选项


1
原始图像不再存在。
tshepang 2011年

-1

1)轻按键盘上的超级键2)搜索“启动应用程序” 3)选择要禁用的程序4)如果遇到问题,请按此答案进行操作。

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.