如何在Ubuntu上安装chkconfig?

45

我正在使用Ubuntu 13.10,对Linux还不是很熟悉。我尝试过:

$ sudo apt-get install chkconfig

软件包 chkconfig 不可用,但是另一个软件包引用了它。 这可能意味着该软件包已丢失、被废弃或者只能从其他来源获取。

E: 软件包 'chkconfig' 没有安装候选项。

我手动下载了该软件包并解压缩了它。生成的文件夹中有一个名为:

chkconfig.install

但是我该如何运行它呢?我尝试了这个,但是它没有起作用。

$ sudo chkconfig.install

chkconfig是红帽操作系统的专有名词。在Ubuntu中,我们使用upstart代替redhat所使用的sysvinit。为什么Ubuntu不再支持chkconfig? "update-rc.d"无需手动下载或安装任何东西。 - Dave Horner
我投票关闭此问题,因为它与编程无关。这个问题更适合 https://askubuntu.com/。 - Keith Thompson
2
我也投票关闭了这个问题(即使我给了它赞成票),但我更倾向于建议迁移到http://unix.stackexchange.com/。 - Sopalajo de Arrierez
9个回答

63

在Ubuntu中,命令chkconfig已不再可用。与chkconfig相对应的命令是update-rc.d。此命令几乎支持所有新版本的Ubuntu。

类似的命令有:

update-rc.d <service> defaults

update-rc.d <service> start 20 3 4 5

update-rc.d -f <service>  remove

4
要列出特定服务的配置,请运行命令:"update-rc.d -f -n SERVICE remove"(-n 表示模拟删除,将显示为该服务配置的所有链接)。 - Lars Nordin
我可以推荐阅读这篇文章来解释update-rc.d的使用:https://www.jamescoyle.net/cheat-sheets/791-update-rc-d-cheat-sheet - Jan

16
在Ubuntu中,/etc/init.d已被/usr/lib/systemd取代。脚本仍然可以通过“service”启动和停止。但是现在主要命令是'systemctl'。chkconfig命令已经被弃用,现在可以使用systemctl来完成相同的功能。
因此,不再使用以下命令:
chkconfig enable apache2

你应该查找服务名称,然后启用它

systemctl status apache2
systemctl enable apache2.service

Systemd已经变得更加友好,可以判断您是否有一个systemd脚本或/etc/init.d脚本,并进行正确的操作。


11

sysv-rc-conf 是 Ubuntu 的另一个可选项。

sudo apt-get install sysv-rc-conf

sysv-rc-conf --list xxxx

sysv-rc-conf --list xxxx 是什么意思? - user1960836
实际上,它与chkconfig --list xxxxx(xxxx代表您的程序)非常相似。chkconfig --list http将显示您的httpd 0:关闭 1:关闭 2:开启 3:开启 4:开启 5:开启 6:关闭。 - Tharanga Abeyseela
查看与chkconfig相同的输出 root@debian:/home/tharanga/sto# sysv-rc-conf --list apache2 apache2 0:关闭 1:关闭 2:开启 3:开启 4:开启 5:开启 6:关闭 - Tharanga Abeyseela
我使用chkconfig和sysv-rc-conf时都遇到了相同的错误,即“软件包sysv-rc-conf不可用,但被另一个软件包引用”。令人疯狂的是,一个众所周知且易于使用的工具被删除,并被一些非标准的东西所取代,我们必须重新学习如何安装和使用。 - John Little

7
alias chkconfig=sysv-rc-conf
chkconfig --list

语法
sysv-rc-conf command line usage:  

        sysv-rc-conf --list [service name]
        sysv-rc-conf [--level <runlevels>] <service name> <on|off>

请注意,我想知道如何运行:chkconfig.install。以防我再次遇到这样的文件。 - user1960836

2
Chkconfig在Ubuntu中不再可用
Chkconfig是一个脚本。您可以从这里下载它。

2

Ubuntu 中安装此软件包:

apt install sysv-rc-conf

这是一个替代chkconfig命令的工具。

安装后运行以下命令:

sysv-rc-conf --list

它会显示所有运行级别中的所有服务。您还可以运行以下命令:

sysv-rc-conf --level (runlevel number ex:1 2 3 4 5 6 )

现在,您可以选择哪个服务在启动时处于活动状态。

1
以下命令在Ubuntu上执行相同操作: systemctl list-dependencies

0

正如 @jerry 所提到的,您可以使用以下命令添加服务。

update-rc.d <service> defaults
update-rc.d <service> start 20 3 4 5
update-rc.d -f <service>  remove

要验证它们,请检查上述命令,您可以检查 /etc/rc*.d/ 目录,其中以 "k" 开头的服务表示它将在启动期间不执行,以 "S" 开头的服务将在启动期间启动。
# for runlevel symlinks:
ls /etc/rc*.d/

在下面的截图中,您可以看到apache2在运行级别2(S02apache2)启动,并在运行级别1(K01apache2)停止。

enter image description here

enter image description here

您还可以使用以下命令检查服务状态,其中“+”表示服务正在运行,“-”表示已停止。

service --status-all

enter image description here

或者

安装sysv-rc-conf实用程序。

apt-get install sysv-rc-conf
example
sysv-rc-conf --level 2345 apach22 on
man sysv-rc-conf

0
“但是我该如何运行它呢?我尝试输入:sudo chkconfig.install,但不起作用。”
“我不确定您从哪里获取此软件包或其包含的内容;提供下载链接会很有帮助。无法查看chkconfig.install的内容,我很惊讶会发现像chkconfig这样的Unix工具被捆绑在zip存档中,也许它仍然需要解压缩,是tar.gz格式吗?但也可能是一个shell脚本?”
“我建议编辑它并查看您正在执行的内容。sh chkconfig.install或./chkconfig.install;这可能有效...但我的建议是学习使用update-rc.d,正如其他答案所建议的那样,但没有直接回答问题...这个问题很难回答,因为无法自己查看数据。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接