10.24 chkconfig工具

时间:2022-04-27
本文章向大家介绍10.24 chkconfig工具,主要内容包括Linux系统服务管理-chkconfig、chkconfig命令、chkconfig命令,指定某一级别开启/关闭、将一个脚本加入到服务列表中、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

Linux系统服务管理-chkconfig

  • chkconfig --list
  • chkconfig --level 3 network off
  • chkconfig --level 345 network off
  • chkconfig --del network
  • chkconfig --add network

chkconfig工具

  • crond、iptables、firewalld、nginx、httpd、mysql等等,都属于服务。
  • chkconfig工具,在centos6和之前的版本中,控制服务的启动;但在centos7中很少使用了,但为了兼容之前的版本,依然可以使用,但在未来的趋势中, 有可能就会被遗弃了,现在就是过度的作用。
  • chkconfig --list //列出所有的系统服务
    • 表示chkconfig工具在centos6或之前的版本中,使用的服务的管理的机制叫 SysV,而centos7的版本中,使用的是 systemd 服务
[root@hf-01 ~]# chkconfig --list    //列出所有的系统服务

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 ~]# 

chkconfig命令

  • 服务的脚本存放在 /etc/init.d/ 下面
    • 启动脚本存放该目录下
[root@hf-01 ~]# ls /etc/init.d/
functions  netconsole  network  README
[root@hf-01 ~]# 
  • chkconfig --list //列出所有的服务
  • chkconfig network off //将network服务关闭
[root@hf-01 ~]# chkconfig network off
[root@hf-01 ~]# chkconfig --list    //会看到2,3,4级别关闭了

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:关	3:关	4:关	5:关	6:关
[root@hf-01 ~]# chkconfig network on
[root@hf-01 ~]# chkconfig --list    //会看到2,3,4级别又开启了

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 ~]# 
  • 在系统中有七个级别等级列表:
    • 等级0表示:表示关机
    • 等级1表示:单用户模式
    • 等级2表示:多用户模式,少nfs服务
    • 等级3表示:多用户模式,不带图形
    • 等级4表示:是一种保留的级别
    • 等级5表示:带图形界面的多用户模式
    • 等级6表示:重新启动
  • 在centos6中的 /etc/inittab 中定义开机的级别
  • 在centos7中,已经没有用了,不需要定义开机的级别了

chkconfig命令,指定某一级别开启/关闭

  • chkconfig --level 3 network off //指定network中的3级别关闭
[root@hf-01 ~]# chkconfig --level 3 network off        //指定network中的3级别关闭
[root@hf-01 ~]# chkconfig --list        //列出所有服务

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:关	4:开	5:开	6:关
[root@hf-01 ~]# 
  • chkconfig --level 345 network on //指定network中的3,4,5级别开启
[root@hf-01 ~]# chkconfig --level 345 network on        //指定network中的3,4,5级别开启
[root@hf-01 ~]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 ~]# 
  • 0和1和6级别不能设置成开
    • 0级别在关机状态是不可能开启的
    • 1级别是单用户模式,服务是不可能开启的
    • 6级别在重启的时候,是不可能开启的——>重启相当于先关闭在启动(重启的那一刻是先关闭才对)。

将一个脚本加入到服务列表中

  1. 首先将启动脚本放入到 /etc/init.d 这个目录下——>只有在这个目录下,才可以添加到服务列表中去
  2. 文件名称无所谓,但内容有格式要求
    • 首先是是一个shell脚本
    • 然后chkconfig指定运行级别启动顺序,第10位启动,第90位关闭
    • 下面代码为它的固定格式,必须要有的!!!
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to 
#              start at boot time.
  • 例子:
[root@hf-01 ~]# cd /etc/init.d
[root@hf-01 init.d]# ls
functions  netconsole  network  README
[root@hf-01 init.d]# cp network 123
[root@hf-01 init.d]# ls -l
总用量 40
-rwxr-xr-x  1 root root  7293 12月  5 05:27 123
-rw-r--r--. 1 root root 17500 5月   3 2017 functions
-rwxr-xr-x. 1 root root  4334 5月   3 2017 netconsole
-rwxr-xr-x. 1 root root  7293 5月   3 2017 network
-rw-r--r--. 1 root root  1160 10月 20 11:07 README
[root@hf-01 init.d]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 init.d]# chkconfig --add 123    //将123加入到服务列表中
[root@hf-01 init.d]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

123            	0:关	1:关	2:开	3:开	4:开	5:开	6:关
netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 init.d]# chkconfig --del 123    //删除服务列表中的脚本
[root@hf-01 init.d]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
[root@hf-01 init.d]# 
  • chkconfig --del network //删除服务列表中的脚本
  • chkconfig --add network //增加服务列表中的脚本