chkconfig:设置系统的各种服务

本文介绍了chkconfig命令的作用及使用方法,该命令用于检查、设置系统的各种服务。文章详细解释了chkconfig的主要选项及其功能,包括如何添加、删除服务以及如何更改服务在不同运行级别中的状态。

作用:chkconfig命令检查、设置系统的各种服务。

用法:chkconfig [—add][—del][—list][系统服务]

或 chkconfig [—level <等级代号>][系统服务][on/off/reset]

主要选项如下。

—add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

—del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

—level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关闭。

说明:chkconfig提供了一个简单的命令行工具用于维护/etc/rc[0-6].d的路径层次,可以帮助系统管理员在这些路径中直接操作符号行,chkconfig的执行是通过chkconfig命令激发的,此命令目前在irix操作系统中存在,甚至包括了维护/etc/rc[0-6].d层次之外的设置信息。chkconfig有5个不同的函数:为管理器添加新服务,从管理器中移出服务,列出当前启动的服务信息,改变服务启动信息,检查特殊服务的启动状态。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

应用实例如下。

(1)显示所有服务的状态

# chkconfig —list

NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off

acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off

anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off

apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off

avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off

capi 0:off 1:off 2:off 3:off 4:off 5:off 6:off

conman 0:off 1:off 2:off 3:off 4:off 5:off 6:off

cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off

crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off

dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off

dund 0:off 1:off 2:off 3:off 4:off 5:off 6:off

firstboot 0:off 1:off 2:off 3:on 4:off 5:on 6:off

gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off

haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off

hidd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

ibmasm 0:off 1:off 2:off 3:off 4:off 5:off 6:off

ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

irda 0:off 1:off 2:off 3:off 4:off 5:off 6:off

irqbalance 0:off 1:off 2:on 3:on 4:on 5:on 6:off

isdn 0:off 1:off 2:on 3:on 4:on 5:on 6:off

kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off

lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off

mcstrans 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mdmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

messagebus 0:off 1:off 2:off 3:on 4:on 5:on 6:off

multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off

netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off

nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off

nscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

oddjobd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

pand 0:off 1:off 2:off 3:off 4:off 5:off 6:off

pcscd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off

psacct 0:off 1:off 2:off 3:off 4:off 5:off 6:off

rawdevices 0:off 1:off 2:off 3:on 4:on 5:o

<think>我们正在解决用户的问题:在Linux系统(特别是Ubuntu)中执行`sudochkconfig`命令时出现“commandnotfound”错误。根据引用资料,我们知道在Ubuntu中默认没有`chkconfig`命令,但可以通过安装`sysv-rc-conf`来替代,或者使用`systemctl`命令(如果系统使用的是systemd)。解决方案有两种主要途径:1.安装`sysv-rc-conf`工具,并创建符号链接或别名来模拟`chkconfig`命令(但注意,这个工具的命令行参数可能与`chkconfig`不完全相同)。2.使用`systemctl`命令(适用于使用systemd的系统,如Ubuntu15.04及更高版本)。我们参考了多个引用:引用[1]和[2]提到问题,引用[1]、[2]、[3]、[4]提供了安装`sysv-rc-conf`的解决方案。引用[5]则建议使用`systemctl`命令,因为Ubuntu15.04之后使用systemd。因此,我们可以提供两种解决方案:方案一:安装sysv-rc-conf步骤:1.更新软件包列表:`sudoapt-getupdate`2.安装sysv-rc-conf:`sudoapt-getinstallsysv-rc-conf`3.此时,可以使用`sysv-rc-conf`命令来管理服务。如果用户习惯使用`chkconfig`命令,可以创建一个符号链接(如引用[4]所示):`sudoln-s/usr/sbin/sysv-rc-conf/usr/sbin/chkconfig`然后就可以使用`sudochkconfig`了。但是注意:引用[4]中用户尝试直接复制文件并修改权限,但创建符号链接是更安全的方法。方案二:使用systemctl(推荐,因为Ubuntu新版本默认使用systemd)在Ubuntu18.04及更高版本中,服务管理使用`systemctl`命令。常见命令:-查看服务状态:`systemctlstatus<服务名>`-启用服务(开机启动):`sudosystemctlenable<服务名>`-禁用服务(不开机启动):`sudosystemctldisable<服务名>`-启动服务:`sudosystemctlstart<服务名>`-停止服务:`sudosystemctlstop<服务名>`因此,如果用户只是想管理服务的开机启动,可以直接使用`systemctl`命令,而不需要安装额外的软件。根据用户的问题,他可能只是想使用`chkconfig`来管理服务的开机启动。所以我们可以推荐使用`systemctl`,因为它更现代且不需要额外安装。但是,如果用户有脚本依赖`chkconfig`命令,那么安装`sysv-rc-conf`并创建符号链接可能是必要的。因此,我们给出两种方案,并说明推荐方案。步骤总结:方案一(使用sysv-rc-conf模拟chkconfig):1.更新软件包列表:`sudoaptupdate`2.安装sysv-rc-conf:`sudoaptinstallsysv-rc-conf`3.创建符号链接:`sudoln-s/usr/sbin/sysv-rc-conf/usr/sbin/chkconfig`方案二(使用systemctl):根据需要使用相应的systemctl命令,例如:-查看服务是否开机启动:`systemctlis-enabled<服务名>`-设置服务开机启动:`sudosystemctlenable<服务名>`-取消服务开机启动:`sudosystemctldisable<服务名>`注意:方案二不需要安装额外软件,但需要用户学习新的命令。根据引用[5],我们知道在Ubuntu15.04以后,系统使用的是systemd,因此推荐使用`systemctl`。因此,我们优先推荐方案二,除非用户有特殊需求(比如必须使用chkconfig命令)。现在,我们按照用户要求生成相关问题。</think>### 解决 Ubuntu 中 `sudo chkconfig` 命令未找到的方案 在 Ubuntu 系统中出现 `sudo chkconfig: command not found` 错误是因为 **Ubuntu 默认使用 `systemd` 服务管理器**,而 `chkconfig` 是旧版 SysV init 系统工具。以下是两种解决方案: --- #### ✅ 方案一:使用 `systemctl` 命令(推荐) Ubuntu 15.04+ 版本已全面采用 `systemd`,可直接使用替代命令: ```bash # 查看服务状态 systemctl status <服务名> # 启用开机自启动 sudo systemctl enable <服务名> # 禁用开机自启动 sudo systemctl disable <服务名> # 启动服务 sudo systemctl start <服务名> ``` **示例**:管理 Nginx 服务 ```bash sudo systemctl enable nginx # 设置开机启动 sudo systemctl start nginx # 立即启动服务 ``` --- #### ⚠️ 方案二:安装 `sysv-rc-conf`(兼容旧脚本) 若需兼容依赖 `chkconfig` 的脚本,可安装替代工具: ```bash # 1. 更新软件源 sudo apt update # 2. 安装 sysv-rc-conf sudo apt install sysv-rc-conf # 3. 创建符号链接(模拟 chkconfig) sudo ln -s /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig ``` **使用示例**: ```bash sudo chkconfig --list # 查看服务 sudo chkconfig nginx on # 启用 Nginx 开机启动 ``` > ⚠️ 注意:此工具语法与 `chkconfig` 不完全相同,部分参数需调整[^1][^3][^4]。 --- ### 📌 关键差异说明 | **功能** | `chkconfig` (SysV) | `systemctl` (systemd) | |------------------|--------------------------|-----------------------------| | 查看服务状态 | `chkconfig --list` | `systemctl status <服务名>` | | 启用开机启动 | `chkconfig <服务> on` | `systemctl enable <服务名>` | | 管理服务 | `service <服务> start` | `systemctl start <服务名>` | | 默认系统 | CentOS 6, 旧版 Ubuntu | Ubuntu 15.04+, CentOS 7+ | > 💡 **推荐优先学习 `systemctl`**,这是现代 Linux 的标准服务管理方式[^5]。 --- ### 相关问题 1. `systemctl` 和 `service` 命令有何区别? 2. 如何在 Ubuntu 中查看所有正在运行的服务? 3. 如果 `systemctl enable` 失败,可能的原因有哪些? 4. 如何将 SysV init 脚本迁移到 systemd 服务单元? [^1]: 引用[1]: 一个解决linux系统下没有chkconfig命令导致的command not found: chkconfig问题。第一步 `sudo apt-get update`,第二步 `sudo apt-get install sysv-rc-conf`。 [^3]: 引用[3]: Ubuntu没有chkconfig服务解决办法。更新安装源 `sudo apt-get update`,安装 `sysv-rc-conf`,链接 `chkconfig`。 [^4]: 引用[4]: ubuntu找不到chkconfig命令。通过 `cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig` 创建链接,并设置权限。 [^5]: 引用[5]: Ubuntu 18下chkconfig报“未找到命令”。使用 `systemctl` 命令替代,它是系统服务管理器指令,组合了 `service` 和 `chkconfig` 的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值