首页 > 代码库 > 开机启动服务:chkconfig命令详解

开机启动服务:chkconfig命令详解

1、查看系统运行级别

# cat /etc/inittab

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:


Linux下的7个运行级别:
等级0:表示关机,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
等级1:单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
等级2:无网络连接的多用户命令行模式,没有NFS支持。
等级3:有网络连接的多用户命令行模式,有NFS,登陆后进入控制台命令行模式。
等级4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
等级5:带图形界面的多用户模式,X11控制台,登陆后进入图形GUI模式,X Window系统。
等级6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6会重启。

运行级别原理:
1.在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
2.在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3.rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
4.系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K开头的文件,系统将终止对应的服; 对于以S开头的文件,系统将启动对应的服务
5.查看运行级别用:runlevel
6.进入其它运行级别用:init N,如果init 3则进入终端模式,init 5则又登录图形GUI模式
7.另外init0为关机,init 6为重启系统
    标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着X Window系统。


2、chkconfig

使用语法:
    chkconfig [--add][--del][--list][系统服务]

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

参数用法:
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--del:***所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内***相关数据。
--level:指定读系统服务要在哪一个执行等级中开启或关毕。

chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:***服务,并把相关符号连接从/etc/rc[0-6].d***。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。


样例:

--列出所有的系统服务

chkconfig --list

--增加httpd服务    
chkconfig --add httpd 

--***httpd服务

chkconfig --del httpd 

--把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态

chkconfig --level httpd 2345 on

等效于:

--设定httpd在各等级为on,“各等级”包括2、3、4、5等级
chkconfig httpd on 


--设置MySQL服务器在运行级别3和4上运行
--将MySQL添加为受chkconfig管理的服务
chkconfig --add mysql
--在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
--在其他级别上设为off
chkconfig --level 01246 mysql off
--列出服务将会运行的运行级别
#chkconfig --list mysql
mysql           0:off       1:off       2:off       3:on 4:off       5:on 6:off