bash: chkconfig: command not found 解决方法
一、chkconfig 错误描述:
这个错误表明在 Bash 环境下,尝试执行 chkconfig 命令,但是系统找不到这个命令。chkconfig 命令是一个用于管理 Linux 系统中服务的启动和停止的工具,通常它是 initscripts 包的一部分,但在最新的 Linux 发行版中可能已经被 systemd 命令取代。
二、解决方法:
1、如果你的系统使用的是 systemd,你可以使用 systemctl 命令来管理服务。例如,启用或禁用服务可以使用以下命令:
bash
# 启用服务:
sudo systemctl enable servicename
# 禁用服务:
sudo systemctl disable servicename
2、如果你系统是完全基于 systemd 的最新 Linux 发行版,使用 systemctl 命令而不是 chkconfig 命令,你可以对比学习两个命令,sysvinit 命令与 systemctl 命令的语法相似。对比如下:
Sysvinit command | Systemd command |
---|---|
service service_name start | systemctl start service_name |
service service_name stop | systemctl stop service_name |
service service_name restart | systemctl restart service_name |
service service_name status | systemctl status service_name |
chkconfig service_name on | systemctl enable service_name |
chkconfig service_name off | systemctl disable service_name |
3、如果你的系统仍然使用 SysVinit 或 upstart,并且确实需要使用 chkconfig 命令,你需要安装 chkconfig 命令。
bash
# 在 RedHat 或 CentOS 系统上 安装 chkconfig 命令,因为 chkconfig 命令是 initscripts 包的一部分
sudo yum install initscripts
# 在 Debian 或 Ubuntu 系统上安装 chkconfig 命令,因为 chkconfig 命令是 initscripts 包的一部分
sudo apt-get install initscripts
# 或者安装 sysvinit-utils, chkconfig 命令也存在 sysvinit-utils 包
sudo apt-get install sysvinit-utils
# 或者安装 sysv-rc, 在 Debian 或 Ubuntu 系统上,chkconfig 命令已经被 sysv-rc 命令代替
sudo apt-get install sysv-rc
sudo apt-get install sysv-rc-conf
# 复制命令并更改命令名称
cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig
#
4、确认你的 PATH 环境变量是否包含了 chkconfig 命令所在的目录。
bash
# 查看当前的 PATH 变量
echo $PATH
# 如果你的 PATH 环境变量 不包含 chkconfig 命令目录,你需要添加相应路径
sudo vim /etc/profile
# 添加 chkconfig 命令 相应的路径。
export CHKCONFIG_HOME=/yourpath
export PATH=${CHKCONFIG_HOME}/bin:$PATH