• chkconfig原理


    chkconfig命令

    功能:检查、设定系统的各种服务

    updates and queries runlevel information for system services 

    Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服务。

     

    语法:

    • chkconfig [--list] [--type type][name]
    • chkconfig --add name
    • chkconfig --del name
    • chkconfig --override name
    • chkconfig [--level levels] [--type type] name <on|off|reset|resetpriorities>
    • chkconfig [--level levels] [--type type] name
     

    参数说明:

    • --add 新增系统服务
    • --del 删除系统服务
    • --level 指定系统服务要在哪个执行等级中开启或关闭
    • --list 列出当前可从chkconfig指令管理的所有系统服务和等级代号
    • on/off/reset 在指定的执行登记,开启/关闭/重置该系统服务

    运行级别:

    具体内容查看/etc/inittab

    • 0:关机(请不要切换到此等级)
    • 1:单用户文本模式
    • 2:多用户文本模式,不具有网络档案系统(NFS)功能
    • 3:多用户文本模式,具有网络档案系统(NFS)功能
    • 4:备用
    • 5:多用户图形界面模式
    • 6:重新启动
     

    chkconfig命令执行示例:

    1. chkconfig --list :显示所有运行级系统服务的运行状态信息(on或off)。

    如果指定了name,那么只显示指定的服务在不同运行级的状态。

    [root@oldboy rc3.d]# chkconfig --list sshd
    sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

    2. chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。

    例如,要在3,4,5运行级停止nfs服务,则命令如下:

    chkconfig --level 345 nfs off

    [root@oldboy rc3.d]# chkconfig --levels 123456 sshd off
    [root@oldboy rc3.d]# chkconfig --list sshd             
    sshd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
    
    
    [root@oldboy rc3.d]# chkconfig --level 2345 sshd on
    [root@oldboy rc3.d]# chkconfig --list sshd             
    sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

    3. chkconfig --add name:增加一项新的服务。

    chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。

    如有缺少,则会从缺省的init脚本自动建立。

    4. chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。

    chkconfig启动和关闭服务的原理:

    以sshd服务为例,sshd在运行级别为 3:on 的情况下,/etc/rc.d/rc3.d/ 目录下会生成 "S55sshd"指定到"/etc/init.d/sshd"文件的软连接。 

    • 其中"S55sshd"的"S"代表服务开启on;
    • 55 代表on的状态的文件编码
    • 25 代表off的状态的文件编码,“K”代表服务off;在3:off的情况下,会生成"K25sshd"指向/etc/init.d/sshd的软连接
     下面是在/etc/rc.d/rc3.d 目录下的S55sshd指向/etc/init.d/sshd服务的软连接:
    [root@oldboy rc3.d]# ls -l /etc/rc.d/rc3.d/ |grep sshd
    lrwxrwxrwx  1 root root 14 Sep  5 00:23 S55sshd -> ../init.d/sshd

    查看/etc/init.d/sshd文件的内容:

    • chkconfig:2345 55 25
      • 2345 是在chkconfig不指定--level的情况下,默认的运行级别
      • 55 是 on 的状态的下的 S55sshd 的软连接名称编码
      • 25 是 off 的状态下的 K25sshd 的软连接名称编码
    • processname:sshd 进程名称
    [root@oldboy rc3.d]# head /etc/init.d/sshd
    #!/bin/bash
    #
    # sshd          Start up the OpenSSH server daemon
    #
    # chkconfig: 2345 55 25  
    # description: SSH is a protocol for secure remote shell access. 
    #              This service starts up the OpenSSH server daemon.
    #
    # processname: sshd
    # config: /etc/ssh/ssh_host_key

    注意:  
    通过手动删除K25sshd 或 增加S55sshd 文件都可以实现chkconfig的sshd服务的on或off的设置。

    编写自定义服务chktestd

    在/etc/init.d/chktestd中手动写入服务:

    [root@oldboy rc3.d]# vim /etc/init.d/chktestd
    
    [root@oldboy rc3.d]# cat /etc/init.d/chktestd
    # chkconfig:23456 66 33
    # description: this is a test service for chkconfig learning.
    
    # processname:chktestd
    
    echo Celebrate!All hail China!

    在chkconfig的服务列表中手动添加chktestd服务:

    [root@oldboy rc3.d]# chkconfig --add chktestd  # 添加服务默认是开启默认level级别的服务
    [root@oldboy rc3.d]# chkconfig --list chktestd
    chktestd        0:off   1:off   2:on    3:on    4:on    5:on    6:on

    查看在/etc/rc.d/rc3.d中是否生成对应的S66chktestd:

    [root@oldboy rc3.d]# ls -l /etc/rc.d/rc3.d/|grep chktestd     
    lrwxrwxrwx  1 root root 18 Sep  5 00:51 S66chktestd -> ../init.d/chktestd

    查看服务chktestd的运行效果:

    [root@oldboy rc3.d]# chmod +x /etc/init.d/chktestd  # 给执行权限
    [root@oldboy rc3.d]# /etc/init.d/chktestd
    1122334455
    Celebrate!All hail China!
     
     
     
     
  • 相关阅读:
    LR通过SiteScope监控mysql
    安装apk文件报waiting for device 时解决办法
    VMware虚拟机中设置端口映射(转载)
    Android模拟器中安装APK文件(转)
    netstat监控大量ESTABLISHED连接与Time_Wait连接问题(转载)
    linux 安装sysstat使用iostat、mpstat、sar、sa(转载)
    SQL联合查询中的关键语法(转)
    JVM调优总结 -Xms -Xmx -Xmn -Xss(转载)
    JVM系列三:JVM参数设置、分析(转载)
    查找进程并杀进程的命令
  • 原文地址:https://www.cnblogs.com/zoe233/p/11919566.html
Copyright © 2020-2023  润新知