服务管理工具 chkconfig

chkconfig 工具

在 Centos 6 以及之前的版本是使用 chkconfig 工具来管理系统的服务,使用 top 命令可以看到进程号为 1 的进程是 init,即 Sys V 。但在 Centos 7 里面已经默认不使用了,Centos 7 中 top 命令可以看到进程号为 1 的已经替换成了 systemd ,但为了和之前的版本兼容,作为过渡,Centos 7 中还可以使用。

语法:

chkconfig (选项)

选项:

  • –add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
  • –del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
  • –level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

等级代号列表:

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动
[root@localhost ~]# 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@localhost ~]# chkconfig --level 345 network off
[root@localhost ~]# 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:关

新增一个服务:

  1. 服务脚本必须放在 /etc/init.d/ 目录下;
  2. 使用命令 chkconfig --add service_name 在 chkconfig 工具列表中添加此服务;
  3. 使用命令 chmod 755 service_name 赋予执行权限;
  4. 使用命令chkconfig --level 35 service_name on 更改启动级别。

在启动脚本中:

#!/bin/bash
#chkconfig: 2345 80 90
#description:auto_run

第一行,告诉系统使用的shell,所有的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的文件连接,第一个字符为K,系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig –add auto_run时,会报错。
80 数字越小 启动优先级别越高
90 数字越小 关闭优先级别越高

你可能感兴趣的:(笔记)