请关注本头条号,每晚坚持更新原创干货技术文章
如需学习视频,请查看本头条号简介,免费在线观看学习视频
1.了解chkconfig
chkconfig是用于管理应用程序是否随系统自启动。chkconfig仅仅是高效管理工具,包括设置和查询,但并何必要。没有它,也有好多方式可以使程序开机自启动。chkconfig不适用于CentOS7系统,CentOS7请使用systemctl
2.使用chkconfig之前,须要了解的知识
2.1了解程序启动脚本的储存位置和脚本内容
以CentOS6为例讲解(CentOS7早已弱化这种概念。):
正规的应用程序的启动脚本就会置于/etc/init.d/这个目录里。上面的脚本早已定义好应用程序怎样启动、结束、查看状态、重启。
脚本文件的内容演示:
以/etc/init.d/zcwyou这个脚本为例,展示这个文件的部份内容:
#chkconfig:23459898这行表示默认运行级别、进程启动次序、进程结束次序description:Startorstopthezcwyouserver描述这个服务#Default-Start:2345定义默认在什么级别运行该程序,关于系统运行级别,下文有介绍#Default-Stop:016定义默认在什么级别会结束运行该程序。
比如/etc/init.d/iptables这个文件,上面早已定义好iptables防火墙的启动、重启等等相关的管理形式。其实,不包括防火墙的配置。
所以,重启防火墙的命令可以用以下命令:
[root@zcwyou ~]# /etc/init.d/iptables restart
2.2了解Linux系统的运行级别
另外,在Linux中linux设置 开机启动,系统是有运行级别的,我们用术语level来叙述:
–level0:表示死机,例如死机可以用init0
–level1:单用户模式
–level2:无网路联接的多用户命令行模式
–level3:有网路联接的多用户命令行模式
–level4:不可用
–level5:带图形界面的多用户模式
–level6:重启系统linux设置 开机启动,例如重启系统可以用init6
在实际的应用中,用得最多是level3和level5。服务器通常使用level3。
以下是每位level对应的工作目录,上面以S开头的文件表示start启动脚本,例如S0808iptables。K开头的文件表示kill结束脚本,例如K5050dnsmasq。前面紧随一个数字,表示启动或关掉的次序。
–level0对应的目录:/etc/rc.d/rc0.d
–level1对应的目录:/etc/rc.d/rc1.d
–level2对应的目录:/etc/rc.d/rc2.d
–level3对应的目录:/etc/rc.d/rc3.d
–level4对应的目录:/etc/rc.d/rc4.d
–level5对应的目录:/etc/rc.d/rc5.d
–level6对应的目录:/etc/rc.d/rc6.d
所以,假若你想把/etc/init.d/zcwyou这个脚本开机手动启动的话,只须要把它复制(通常是创建软链接,类似于Windows的快捷方法)到相应级别的工作目录,即可实现开机自启动。
Linux在开机时,会手动查找对应级别的工作目录,按序号启动上面的脚本,例如先启动S02lvm2-monitor再启动S0808ipip66tablestables。
至此linux环境变量,你会发觉。虽然,不须要chkconfig也可以设置程序开机自启。
3:尝试使用chkconfig
chkconfig的工作原理就是上面介绍的,只是它弄成高效管理而已。
3.1查询服务
命令:
[root@zcwyou ~]# chkconfig --list
显示所有受chkconfig管理的程序在各级别运行的情况。on表示开启,off表示关掉。假如只查询指定服务,在旁边另上程序名即可。
事例:
[root@zcwyou ~]# chkconfig --list mysqld
3.2添加管理对象
chkconfig–addname:降低一项新的服务受chkconfig管理,脚本要放到目录/etc/init.d/,但是上面配置好chkconfig相关参数,看2.1的反例。如有缺乏linux 版本,则按init的缺省配置进行处理。
事例:
[root@zcwyou ~]# chkconfig --add zcwyou
3.3删掉管理对象
chkconfig–delname:删掉服务,不受chkconfig管理。并从/etc/rc.d/rc[0-6].d删掉相关联接。
事例:
[root@zcwyou ~]# chkconfig --del zcwyou
3.4设置管理对象
chkconfig[–levellevels]name:设置某一服务在指定的运行级里的是否手动启动。
事例:设置mysqld在level3,4,5中自启动:
[root@zcwyou ~]# chkconfig --level 345 mysqld on
总结:chkconfig是CentOS6及之前版本的发行版的应用程序开机启动的管理工具,CentOS7应当使用systemctlenablexxx.service与systemctldisablexxx.service