Linux小记之chkconfig

Posted by Leemon on August 15, 2016

作用

引用自man chkconfig

chkconfig - updates and queries runlevel information for system services

chkconfig用于更新或查询系统服务的启动级别信息

语法

chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset|resetpriorities>
chkconfig [--level levels] name

用法及使用注意事项

chkconfig命令使用比较简单,只有简单的罗列,添加,删除及更新

注意事项

使用chkconfig管理服务,需要在自定义脚本中添加至少两行注释

示例(man page)

# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
#              higher quality random number generation.

其中

  • chkconfig指定服务的启动级别启动优先级及关闭优先级。第一列2345代表启动级别,如果不想指定启动级别,可以使用’-‘代替,第二列20代表启动优先级,第三列80代表关闭优先级。
  • description服务的一些简单描述,如写成多行可以使用反斜杠
查询指定服务的运行级别
chkconfig --list tomcat
添加自定义服务
chkconfig --add tomcat
此处添加服务的运行级别取自脚本注释行chkconfig中的第一列的值

通过chkconfig –add 添加服务,会在目录 /etc/rc.d/rcN.d (其中N代表0-6这7个启动级别)中添加S/K的文件,这些文件均链接到/etc/init.d的启动脚本 以 chkconfig: 2345 20 80,服务名为tomcat为例,使用chkconfig –add tomcat之后,会在/etc/rc.d/rc0.d,rc1.d,rc6.d中添加K80tomcat链接文件,在rc[2-5].d中添加S20tomcat链接文件。

为什么会是这样的结果呢,这里涉及到linux启动的过程,如果系统正常启动的话,只需要执行inittab文件中指定运行级别rcN.d中以S开头的脚本文件,如果是从其他运行级另切换过来的,则需要首先执行K开头的脚本文件,然后再执行以S开头的脚本文件。

删除chkconfig管理的服务
chkconfig --del tomcat
更新指定服务的运行级别信息
chkconfig --level 5 tomcat off
chkconfig --level 235 tomcat on
chkconfig tomcat reset

添加自定义服务

添加自定义服务除了服务脚本需要遵循以上的注意事项,还需要将服务脚本拷贝至目录/etc/init.d,然后才能通过chkconfig –add 添加自定义服务

cp /root/scripts/tomcat /etc/init.d
chmod +x /etc/init.d/tomcat
chkconfig --add tomcatll