Chkconfig 名称:chkconfig - updates and queries runlevel information forsystem services更新查询系统服务的运行级别信息。 语法: chkconfig [--add][--del][--list] [系统服务] chkconfig [--level<等级代号>] [系统服务] [on/off/reset] 功能简述: Chkconfig 用来查询更新系统服务的运行级别信息,只是简单的改变了符号链接(软链接)通过查看/etc/rc3.d/可以发现都是软链接,并且都是直到/etc/init.d/下的执行文件。Chkconfig 也就是通过管理这些软链接来管理系统运行级别的服务。 注意:当切换系统运行级别的时候,系统根据启动脚本,来重新加载 参数: --add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。 --del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。 --level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。 ------------------------- 等级0表示:表示关机 等级1表示:单用户模式 等级2表示:无网络连接的多用户命令行模式 等级3表示:有网络连接的多用户命令行模式 等级4表示:不可用 等级5表示:带图形界面的多用户模式 等级6表示:重新启动 ------------------------ --list 显示系统服务所有的运行级别的服务状况,如果有制定具体服务那么只显示某个服务的系统运行级别 1)增加一个系统服务 1、先将执行w文档放入/etc/init.d/目录中 2、chkconfig–add servicename 在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rcN.d中赋予K/S入口了? 实例测试: [root@bogon init.d] #chkconfig --add mysshd [root@bogon init.d]# chkconfig --list mysshd mysshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 默认就会在这几个级别中启动?我是复制了sshd的执行脚本,这个会有关系?重新复制了其他的执行脚本,之后确实真的有关系。那如果要是我自己创建的执行脚本呢? 另:发现我自己写的一个ping的服务添加不了,提示servicemyping does not support chkconfig。 原来原因是这个: 运行级文件:每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用- 代替运行级。第二行对服务进行描述,可以用\跨行注释。 例如,random.init包含三行: # chkconfig: 2345 20 80 [这个就是默认在2345运行级别是开启的,20为启动顺序,80为停止顺序] # description: Saves and restores system entropy pool for \ # higher quality random number generation 只是这个优先级别是如何来工作的呢?? 老师的解答:20 启动顺序,是服务在/etc/rcx.d文件里面的顺序。这组数字就是系统启动的时候服务启动的优先级---数字越小,优先级越高,也就是启动的时候数值越小越先启动 80 停止顺序,这组数值就是系统关闭的时候关闭服务的优先级---数字越小,优先级越高,也就是关闭的时候数值越小越先关闭-----从老师的聊天记录中得到答案。 2)删除一个服务 [root@bogon init.d]# chkconfig --del mynfs [root@bogon init.d]# ls my* mynfs myping mysshd 原本的执行脚本不会被删除。 3)罗列所有的系统服务 Chkconfig --list 4)管理某个服务在某个运行级别的状态 Chkconfig --level 2345 servicesname on|off [挺常用的] 配置开机启动将启动脚本放在/etc/rc.d/rc.local下就可以启动了。编辑rc.local这个文件。例如讲 mysql加入到开机启动 (1)编辑rc.local文件 #vi/etc/rc.d/rc.local (2)加入如下启动命令 /etc/rc.d/init.d/mysqldstart 注意:如果在/etc/rc.d/rc.local中写入了自动启动,即使chkconfig --level mysqld offmysql也会自动启动。 5)系统优化:通过脚本关闭自己所不需要的服务 1.列出我们需要的服务 chkconfig --list | egrep "syslog|cron|network|ssh" | awk '{print $1}' 2.关闭所有服务 for n in'chkconfig --list | awk '{print $1}'';do chkconfig $n off; done 3.仅开启我们需要的服务 for n in 'chkconfig --list| egrep "syslog| crond|network|ssh" | awk'{print $1}'';do chkconfig --level 3 $n on ;done 思路:先是关闭所有的服务,那么就需要先获取所有服务名称然后循环关闭,之后获取我们需要的开启的服务名称,之后循环开启我们指定的运行级别。之后要自己写的时候,也可以按照事情细分的过程来写,调试。 -------------------------------------------------------------------------------- 《开机启动》 将一个服务或脚本设置为开机启动,可以直接在rc.local中去添加启动命令。 《系统优化—开机启动服务》 系统进开通我们需要的几个服务,通过命令或者脚本来进行统一设置。 1、awk获取服务名,for in ‘’;do ;done 关闭所有服务 2、for in ;do ;done 仅开启我们需要的几个服务。 ======================后续自己简单小结============= chkconfig 主要就是来配置系统服务启动顺序的,跟windows的系统启动项管理一样那,只不过就是命令操作而已嘛。实际上的文件就是存放在,操作系统里面的嘛。放在哪里?就是放在/etc/init.d/里面的嘛,这个就是真正的执行文件。但是那么多个运行级别不会都有这些执行文件吧,当然不是,其实不同的运行级别就是通过类似软链接的形式链接到init.d里面的执行文件,并且设置开关启动顺序而已。所以我们命令chkconfig就能够控制系统开机启动项了。 chkconfig -add servername 就是添加 chkconfig --delete servername 删除 chkconfig --list 罗列 chkconfig --level 2 servername on|off 其实还是挺简单的用法嘛,跟windows对应起来比较容易记得住。 (责任编辑:IT) |