Linux(Centos)之chkconfig命令使用攻略及案例分析

Linux(Centos)之chkconfig命令使用攻略及案例分析 

[root@iZ25ja2kaemZ ss]# chkconfig --help

chkconfig version 1.3.49.3 - Copyright (C) 1997-2000 Red Hat, Inc.

This may be freely redistributed under the terms of the GNU Public License.

usage:   chkconfig [--list] [--type ] [name]chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。参见案例一。

chkconfig --add

chkconfig --del

chkconfig --override

chkconfig [--level ] [--type ] ,参见案例三,案例四,案例五。

亚强整理:

chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

也就是说,chkconfig仅仅可以设置服务的启动运行级别,其作用仅仅在下次更换运行级别时有效,而不会立即重启或停止某个服务。-亚强

[root@iZ25ja2kaemZ ss]#

案例一:列出指定服务的运行级别信息

[root@iZ25ja2kaemZ ~]# chkconfig --list mysqld

mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

案例二:列出当前服务器所有被chkconfig管理的服务列表及其运行级别信息

[root@iZ25ja2kaemZ ~]# chkconfig --list

abrt-ccpp       0:off   1:off   2:off   3:off   4:off   5:off   6:off

abrtd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

acpid           0:off   1:off   2:off   3:off   4:off   5:off   6:off

aegis           0:off   1:off   2:on    3:on    4:on    5:on    6:off

agentwatch      0:off   1:off   2:on    3:on    4:on    5:on    6:off

atd             0:off   1:off   2:off   3:off   4:off   5:off   6:off

auditd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

blk-availability        0:off   1:on    2:off   3:off   4:off   5:off   6:off

cpuspeed        0:off   1:on    2:off   3:off   4:off   5:off   6:off

haldaemon       0:off   1:off   2:off   3:off   4:off   5:off   6:off

htcacheclean    0:off   1:off   2:off   3:off   4:off   5:off   6:off

httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

ip6tables       0:off   1:off   2:off   3:off   4:off   5:off   6:off

iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

irqbalance      0:off   1:off   2:off   3:off   4:off   5:off   6:off

kdump           0:off   1:off   2:off   3:off   4:off   5:off   6:off

lvm2-monitor    0:off   1:on    2:off   3:off   4:off   5:off   6:off

mdmonitor       0:off   1:off   2:off   3:off   4:off   5:off   6:off

messagebus      0:off   1:off   2:off   3:off   4:off   5:off   6:off

mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off

netfs           0:off   1:off   2:off   3:off   4:off   5:off   6:off

network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

nscd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

psacct          0:off   1:off   2:off   3:off   4:off   5:off   6:off

quota_nld       0:off   1:off   2:off   3:off   4:off   5:off   6:off

rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off

restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off

rngd            0:off   1:off   2:off   3:off   4:off   5:off   6:off

rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off

saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off

smartd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

svnserve        0:off   1:off   2:off   3:off   4:off   5:off   6:off

udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

案例三:省略--level参数,那么默认--level的值为2345.使用on快捷命令将,2,3,4,5运行级别设置为on状态。

[root@iZ25ja2kaemZ incar]# chkconfig --list httpd

httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@iZ25ja2kaemZ incar]# chkconfig httpd on

[root@iZ25ja2kaemZ incar]# chkconfig --list httpd

httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

案例四:省略--level参数,那么默认--level的值为2345.使用off快捷命令将,2,3,4,5运行级别设置为off状态。

[root@iZ25ja2kaemZ test]# chkconfig --list mysqld

mysqld          0:on    1:on    2:on    3:on    4:on    5:on    6:on

[root@iZ25ja2kaemZ test]# chkconfig mysqld off

[root@iZ25ja2kaemZ test]# chkconfig --list|grep mysqld

mysqld          0:on    1:on    2:off   3:off   4:off   5:off   6:on

案例五:设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。--level与reset不同,-level仅仅影响设置的当前级别,不影响其他运行级别的设置。比如案例--level 35 on ,仅仅将35级别设置为on,对于01246运行级别不做任何操作,即保持原状。

[root@iZ25ja2kaemZ test]# chkconfig --level 0123456 mysqld off

[root@iZ25ja2kaemZ test]# chkconfig --list|grep mysqld

mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@iZ25ja2kaemZ test]# chkconfig --level 35 mysqld on

[root@iZ25ja2kaemZ test]# chkconfig --list|grep mysqld

mysqld          0:off   1:off   2:off   3:on    4:off   5:on    6:off

[root@iZ25ja2kaemZ test]#

案例六:重置某个服务的运行级别。即将目的运行级别设置为某个服务首次安装在当前linux系统时的运行级别,即服务初始化时的运行级别。reset可以对所有运行级有效。 

[root@iZ25ja2kaemZ test]# chkconfig --list|grep postfix

postfix         0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@iZ25ja2kaemZ test]# chkconfig postfix reset#不同的服务初始化时的启动级别不同,因此运行该命令后,其结果运行级别会出现不同的结果。效果:从/etc/rc.d/init.d/postfx文件中的# chkconfig: 2345 80 30行,读取postfix服务安装时的运行级别,该reset指令影响所有7个启动级别,即如读取/etc/rc.d/init.d/postfx文件中的# chkconfig: 2345 80 30行,那么将2345级别设置为启动on,将016设置为不启动off。

分2步骤,第一首先将/etc/rc.d/rc*.d中有关该服务postfix邮件服务的所有软链接全部删除。第二:将rc2.d,rc3.d,rc4.d,rc5.d目录中写入到S80postfix,在rc0.d,rc1.d,rc6.d中写入K30postfix.d.可以看到reset是对全部7个运行级别目录进行重写,文件/etc/rc.d/init.d/postfx启动脚本中标记为启动的写入启动软链接到指定运行级别目录,其他运行级目录写入不启动软链接。

[root@iZ25ja2kaemZ test]# chkconfig --list postfix

postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off

案例七:将某个服务添加到chkconfig命令符管理的服务的列表中;

[root@iZ25ja2kaemZ rc.d]# chkconfig --add postfix #添加某个服务到chkconfig管理范围,注意:该命令行执行的前提条件是,在/etc/rc.d/init.d/目录下存在以相应服务的名字命名的服务,比如要添加postfix服务,那么必须存在/etc/rc.d/init.d/postfix启动脚本(通常yum install postfix邮件服务后,那么该yum命令会自动添加该服务启动脚本到/etc/rc.d/init.d/目录),否则--add命令执行失败。命令执行成功后,我们可以用 chkconfig --list 可以查询到添加的服务。并可以通过chkconfig的其他参数来管理该服务的运行级别。需要注意的是,如果 chkconfig --list 列表中已经存在某个服务,那么你再次运行 chkconfig --add 服务名,那么--add不会有任何效果,即--add不会重新加载该服务,不会将当前服务的运行级别重置为初始化值(即/etc/rc.d/init.d/服务名,文件中的# chkconfig: 2345 80 30行指定的级别)。关于--add添加服务后的默认启动级别,该参数是从/etc/rc.d/init.d/服务名,文件中的# chkconfig: 2345 80 30行读取的。

案例八:从chkconfig管理列表中删除某个服务,删除后该服务将在任意启动级别都不会自动启动。因为该chkconfig --del

/etc/rc.d/rc*.d下的所有与删除的服务相关的文件软链接全部删除掉了。而linux系统的启动引导程序启动哪些服务是从/etc/rc.d/rc*.d目录下寻找的。当然该操作不会将/etc/rc.d/init.d下面的该服务的启动脚本文件删除,因此我们还可以使用chkconfig --add重新将该服务添加到chkconfig的运行级管理列表。

[root@iZ25ja2kaemZ rc.d]# chkconfig --del postfix#从chkconfig --list列表中删除指定服务,执行后该服务不能再通过chkconfig参数来操作运行级别。

下面的资料为chkconfig命令内部代码对linux系统目录的操作效果,主要涉及的目录为/etc/rc.d/目录,如需要可以参考,其他关于系统引导以及运行级信息可以参考本手册<linux学习引导-对/etc/rc.d/init.d&rc*.d分析,系统引导,运行级别,configure命令>-王亚强:

chkconfig相关命令参数,对/etc/rc.d/目录文件的修改,添加,删除操作。

1. 添加某个服务到某个运行级别自动启动或不启动:chkconfig--add postfix,运行该命令后,我们可以用chkconfig的各种参数来控制操作该服务的运行级别。

注意:一般来讲,你用yum等命令安装某个服务后,那么会自动运行一遍chkconfig  --add postfix命令。只有将某个服务加入到/etc/rc.d/rc*.d目录下,那么该服务才会在对应级别运行,否则不会自动启动。

注意:该命令行执行的前提条件是,在/etc/rc.d/init.d/目录下存在以相应服务的名字命名的服务,比如要添加postfix服务,那么必须存在/etc/rc.d/init.d/postfix启动脚本(通常yum install postfix邮件服务后,那么该yum命令会自动添加该服务启动脚本到/etc/rc.d/init.d/目录),否则--add命令执行失败。

根据/etc/rc.d/init.d/postfix启动脚本中定义的启动级别,将创建7个软链接分别写入到/etc/rc.d/rc*.d(*为从0到6)共计7个目录中,并根据软链的命名确定某个目录(每个目录代表一个启动级别需要启动哪些服务)下是启动postfix服务还是不启动postfix服务。一般以软链接命名为标记,如软链以S开头,那么代表当前启动级别启动该服务,如果以K开头,那么表明当前启动级别不启动当前服务。

比如:/etc/rc.d/init.d/postfix中文件中有行# chkconfig: 2345 80 30,即安装postfix服务后,默认启动级别为2345

我们执行chkconfig  --add postfix

命令效果为:读取/etc/rc.d/init.d/postfix文件的默认启动级别为2345,在/etc/rc.d/rc2.d,/etc/rc.d/rc3.d,/etc/rc.d/rc3.d,/etc/rc.d/rc4.d目录下写入软链接文件S80postfix,在/etc/rc.d/rc0.d,/etc/rc.d/rc1.d,/etc/rc.d/rc6.d,写入K30postfix。

我们执行下面的命令看看效果:

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig --add postfix

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/S80postfix

./rc3.d/S80postfix

./rc4.d/S80postfix

./rc5.d/S80postfix

./rc6.d/K30postfix

[root@iZ25ja2kaemZ rc.d]#

2. 从运行级别目录/etc/rc.d/rc*.d删除某个服务:chkconfig  --del postfix,执行该命令后该服务的启动级别将不能再被chkconfig命令来进行修改。

执行效果为:将/etc/rc.d/rc*.d下关于该指定服务的所有软链接全部删除,但是不会删除位于/etc/rc.d/init.d/目录下的该服务的启动脚本文件。参见下面的代码:

[root@iZ25ja2kaemZ rc.d]# chkconfig --list postfix

postfix         0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/K30postfix

./rc3.d/K30postfix

./rc4.d/K30postfix

./rc5.d/K30postfix

./rc6.d/K30postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig --del postfix

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig --list postfix

service postfix supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add postfix')

[root@iZ25ja2kaemZ rc.d]# chkconfig --add postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig --list postfix

#亚强,可以看到这里加载的是/etc/rc.d/init.d/postfix启动脚本中的默认级别,而不是前面删除该启动脚本时候的运行级别,

postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/S80postfix

./rc3.d/S80postfix

./rc4.d/S80postfix

./rc5.d/S80postfix

./rc6.d/K30postfix

[root@iZ25ja2kaemZ rc.d]#

3.重置某个服务的运行级别为安装该服务时,默认的运行级别。chkconfig  postfix reset

效果:从/etc/rc.d/init.d/postfx文件中的# chkconfig: 2345 80 30行,读取postfix服务安装时的运行级别。

分2步骤,第一首先将/etc/rc.d/rc*.d中有关该服务postfix邮件服务的所有软链接全部删除。第二:将rc2.d,rc3.d,rc4.d,rc5.d目录中写入到S80postfix,在rc0.d,rc1.d,rc6.d中写入K30postfix.d.可以看到reset是对全部7个运行级别目录进行重写,文件/etc/rc.d/init.d/postfx启动脚本中标记为启动的写入启动软链接到指定运行级别目录,其他运行级目录写入不启动软链接。

案例:

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/S80postfix

./rc1.d/S80postfix

./rc2.d/S80postfix

./rc3.d/S80postfix

./rc4.d/S80postfix

./rc5.d/S80postfix

./rc6.d/S80postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig postfix reset

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/S80postfix

./rc3.d/S80postfix

./rc4.d/S80postfix

./rc5.d/S80postfix

./rc6.d/K30postfix

[root@iZ25ja2kaemZ rc.d]#

4修改某个服务的启动级别。chkconfig  --level 23 postfix on/off;如果省略--level参数,那么该参数值在centos6下默认为2345。即chkconfig--level 2345 postfix on/off等价于chkconfig  postfix on/off;

该level参数仅仅对涉及到的运行级别有效,不影响其他运行级别。

如:

chkconfig  --level 23 postfix  on#将postfix服务的23启动级别设置为自动启动,01456启动级别不受到该命令的任何影响。与reset不同,reset会重置所有的7个级别为安装服务时的默认值(/etc/rc.d/init.d/postfix文件中有记录该值# chkconfig: 2345 80 30),即仅仅对设计到的rc2.d,rc3.d运行级目录将postfix服务的相关软链删除,然后重新写入S80postfix软链接

chkconfig  --level 23 postfix  off #将postfix服务的23启动级别设置为不自动启动,01456启动级别不受到该命令的任何影响。与reset不同,reset会重置所有的7个级别为安装服务时的默认值(/etc/rc.d/init.d/postfix文件中有记录该值# chkconfig: 2345 80 30)),即仅仅对设计到的rc2.d,rc3.d运行级目录将postfix服务的相关软链删除,然后重新写入K30postfix软链接

案例:

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/K30postfix

./rc3.d/K30postfix

./rc4.d/K30postfix

./rc5.d/K30postfix

./rc6.d/K30postfix

[root@iZ25ja2kaemZ rc.d]# chkconfig --level 23 postfix on

[root@iZ25ja2kaemZ rc.d]# find ./ -name '*postfix*' | sort -n

./init.d/postfix

./rc0.d/K30postfix

./rc1.d/K30postfix

./rc2.d/S80postfix

./rc3.d/S80postfix

./rc4.d/K30postfix

./rc5.d/K30postfix

./rc6.d/K30postfix

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容