chkconfig命令详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chkconfig命令详解相关的知识,希望对你有一定的参考价值。

一、功能说明

      chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。

     注意:它不是直接对服务进行启动或停止,只是设置下一次启动时的操作。也只是简单的更改了符号链接。

二、语法格式

       chkconfig [选项] [参数]

                      chkconfig [选项] [参数] [on/off/reset]

三、常用选项

      --add:添加服务给chkconfig管理

      --del:删除chkconfig列表里面某个服务

       --list:列出chkconfig管理的服务列表

      --level:设置级别(启动级别)

参数

       服务的名称

实例

 列出当前的开机启动的服务

[[email protected] init.d]# 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
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
cpuspeed      0:off  1:on    2:off   3:off  4:off   5:off   6:off
crond         0:off  1:off   2:on    3:on   4:on    5:on    6:off
haldaemon     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
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
nfs-rdma      0:off  1:off   2:off   3:off  4:off   5:off   6:off
sysstat       0:off  1:on    2:on    3:on   4:on    5:on    6:off
udev-post     0:off  1:on    2:off   3:off  4:off   5:off   6:off
[[email protected] init.d]#


六、扩展

1)    添加服务

 

[[email protected] init.d]# chkconfig--add lixin


注意:需要把启动脚本放在/etc/init.d下才可以使用chkconfig管理,并且由于chkconfig管理需要服务的启动脚本必须拥有指定格式才可以,所以我们添加的自启动服务,需要在文件头添加固定的格式

[[email protected] init.d]# headiptables

#!/bin/sh

#

# iptables      Start iptables firewall

#

# chkconfig: 2345 08 92     //定义启动级别,以及start和kill顺序

# description:  Starts,stops and saves iptables firewall

#                   //定义文件描述符

#

[[email protected] init.d]#

固定格式为:#chkconfig 234508 92

          #description:xxxxxx

其中chkconfig 2345 0892,分别表示启动级别、启动顺序、关闭顺序。

启动级别分为7中:

  • 0级别:表示关机

  • 1级别:表示单用户,一般用来做root密码修改等

  • 2级别:多用户但不包含NFS服务

  • 3级别:完整的多用户模式(命令行模式)

  • 4级别:保留未使用

  • 5级别:表示图形界面

  • 6级别:表示重启

  • 这些级别在/etc/inittab中有明确定义。

 

开机关闭顺序,是我们手工指定的,指定的时候最好去/etc/rc.d/rc3.d下查看,一般避免和其他服务重复数字,并且尽量保持在100以内。

 

  小结:我们执行chkconfig –level 3sshd on 时,它会在对应级别的启动目录下,产生一个以S开头的软连接用来指定这个服务的位置(在/etc/init.d/下)。如果 off掉,它会把之前的文件删掉,产生一个以K开头的软连接文件指定服务的位置。(KKillS,Start

2)    精简开机启动服务

由于系统完毕后,基本所有的服务在2345级别都是打开的状态,为了优化服务,我们一般会选择性的开启那些我们必须的服务,规避一下安全隐患。

  • sshd服务:用来提供用户登录的服务。

  • crond服务:用来执行计划(定时)任务。

  • network服务:用来提供网络服务。

  • rsyslog服务:用来打印系统日志信息的服务。

  • sysstat服务:是一个软件包,包含监测系统性能及效率的一组工具包含:

    • iostat:提供CPU的使用率等数据

    • mpstat:提供单个或多个处理器的数据

    • sar:收集、报告存储系统的活跃信息

 

建议新系统只开启上述5个服务

3)    批量开关服务

方法1:因为所有服务默认是开启的,所以我们只需要关闭不需要的服务。

[[email protected] rc3.d]# chkconfig 
abrt-ccpp      0:off  1:off   2:on    3:on   4:on    5:on    6:off
smartd        0:off  1:off   2:on    3:on   4:on    5:on    6:off
sshd          0:off  1:off   2:on    3:on   4:on    5:on    6:off
svnserve       0:off  1:off   2:on    3:on   4:on    5:on    6:off
sysstat        0:off  1:on    2:on    3:on   4:on    5:on    6:off
udev-post      0:off  1:on    2:on    3:on   4:on    5:on    6:off
……
[[email protected] rc3.d]#
[[email protected] rc3.d]# chkconfig |grep -Ev "sshd|crond|network|rsyslog|sysstat"
abrt-ccpp      0:off  1:off   2:on    3:on   4:on    5:on    6:off
restorecond    0:off  1:off   2:on    3:on   4:on    5:on    6:off
rngd          0:off  1:off   2:on    3:on   4:on    5:on    6:off
saslauthd      0:off  1:off   2:on    3:on   4:on    5:on    6:off
smartd         0:off  1:off   2:on    3:on   4:on    5:on    6:off
svnserve       0:off  1:off   2:on    3:on   4:on    5:on    6:off
udev-post      0:off  1:on    2:on    3:on   4:on    5:on    6:off
……    //筛选出除sshd,crond,network,sysstat,rsyslog以外的服务
[[email protected] rc3.d]# chkconfig |grep -Ev "sshd|crond|network|rsyslog|sysstat" | awk ‘{print $1}‘
lvm2-monitor
mdmonitor
messagebus
netconsole
netfs
nfs-rdma
ntpd
ntpdate
postfix
psacct
quota_nld
……   //利用awk用空格分隔把服务的名称取出
[[email protected] rc3.d]# chkconfig |grep -Ev "sshd|crond|network|rsyslog|sysstat" | awk ‘{print"chkconfig",$1,"off"}‘
chkconfig restorecond off
chkconfig rngd off
chkconfig saslauthd off
chkconfig smartd off
chkconfig svnserve off
chkconfig udev-post off
……      //利用awk的print参数拼出命令
[[email protected] rc3.d]# chkconfig |grep -Ev "sshd|crond|network|rsyslog|sysstat" | awk ‘{print"chkconfig",$1,"off"}‘ |bash  //交给bash来执行
[[email protected] rc3.d]# [[email protected]]# chkconfig |grep -E ‘crond|sshd|network|rsyslog|sysstat‘
crond         0:off  1:off   2:on    3:on   4:on    5:on    6:off
network       0:off  1:off   2:on    3:on   4:on    5:on    6:off
rsyslog       0:off  1:off   2:on    3:on   4:on    5:on    6:off
sshd          0:off  1:off   2:on    3:on   4:on    5:on    6:off
sysstat       0:off  1:on    2:on    3:on   4:on    5:on    6:off
[[email protected] rc3.d]#


 

方法二:首先关闭所有服务,然后只开启我们需要的五个服务

[[email protected] rc3.d]# chkconfig |awk ‘{print $1}‘
abrt-ccpp
abrtd
acpid
atd
sshd
svnserve
sysstat
……      //用awk过滤出服务名称
[[email protected] rc3.d]# chkconfig |awk ‘{print "chkconfig",$1,"off"}‘
chkconfig postfix off
chkconfig psacct off
chkconfig quota_nld off
chkconfig rdisc off
chkconfig rdma off
chkconfig restorecond off
chkconfig rngd off
……      //使用awk的print参数拼出命令
 [[email protected] rc3.d]# chkconfig | awk ‘{print"chkconfig",$1,"off"}‘| bash       //关闭所有服务
 [[email protected] rc3.d]# chkconfig 
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
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
messagebus     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
……
[[email protected] rc3.d]# chkconfig--list|egrep "crond|sshd|network|rsyslog|sysstat"|awk ‘{print"chkconfig",$1,"on"}‘|bash     //开启五个服务
[[email protected] rc3.d]# chkconfig|grep -E ‘crond|sshd|network|rsyslog|sysstat‘  //验证
crond         0:off  1:off   2:on    3:on   4:on    5:on    6:off
network       0:off  1:off   2:on    3:on   4:on    5:on    6:off
rsyslog       0:off   1:off  2:on    3:on    4:on   5:on    6:off
sshd          0:off  1:off   2:on    3:on   4:on    5:on    6:off
sysstat       0:off  1:on    2:on    3:on   4:on    5:on    6:off
[[email protected] rc3.d]#



本文出自 “你的黑夜” 博客,请务必保留此出处http://lixin15.blog.51cto.com/3845983/1751681

以上是关于chkconfig命令详解的主要内容,如果未能解决你的问题,请参考以下文章

chkconfig命令详解(Linux)

Linux下chkconfig命令详解

Linux下chkconfig命令详解

Linux下chkconfig命令详解

Linux下chkconfig命令详解

Linux下chkconfig命令详解