其他分享
首页 > 其他分享> > chkconfig原理

chkconfig原理

作者:互联网

chkconfig命令

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

updates and queries runlevel information for system services 

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

 

语法:

 

参数说明:

 

运行级别:

具体内容查看/etc/inittab

 

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"文件的软连接。 

 下面是在/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文件的内容:

[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!

 

 

 

 

       

标签:sshd,off,rc3,etc,原理,chkconfig,root
来源: https://www.cnblogs.com/zoe233/p/11919566.html