Linux服务与chkconfig
chkconfig使用说明
chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。
chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。
chkconfig 提供5个功能:
1. 设置service启动信息
# chkconfig name on/off/reseton、off、reset用于改变service的启动信息。
on表示开启,off表示关闭,reset表示重置。
默认情况下,on和off开关只对运行级2,3,4,5有效,reset可以对所有运行级有效。 例如,
2. 设置service运行级别
# chkconfig --level levels例如,
# chkconfig --level 2345 httpd on指定运行级为2,3,4,5
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
3. 添加service
# chkconfig --add name添加一个chkconfig管理的service,并在/etc/rc[0-6].d 目录下添加相应的符号链接(symbolic links)。
4. 移除service
# chkconfig --del name从chkconfig 管理名单中删除该service,并且删除 /etc/rc[0-6].d 目录下所有与之关联的符号链接(symbolic links)。
5. 列出service的启动信息
# chkconfig --list [name]如果不指定name,会列出所有services的信息。
每个service每个运行级别都会有一个启动和停止脚本;当切换运行级别时,init不会重启已经启动的service,也不会重新停止已经停止的service。
下面举例说明
(1).列出所有服务的启动情况
$ chkconfig --list auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off redis 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off 。。。 xinetd based services:rsync: offswat: off(2)增加mysqld服务
$ chkconfig --add mysqld(3)删除mysqld服务
$ chkconfig --del mysqld(4)设置mysqld运行级别为2,3,4,5
$ chkconfig --level 2345 httpd on(5)列出mysqld 服务启动信息情况
$ chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off(6)设置启动信息
$ chkconfig mysqld on默认的运行级别为2,3,4,5
实际上,与4中命令作用是一样的。
====================================================
添加linux服务
所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。更通俗的讲,就是进程的开机启动。
本文主要介绍如何添加一个service。
1. 开发一个程序
首先开发一个软件,使其成为service。代码如下:
init_daemon()完成进程的精灵化过程,包括脱离终端转入后台等。
编译
# gcc capsule.c –o capsule将可执行文件拷贝到/usr/local/sbin目录下
# cp capsule /usr/local/sbin/2.编写service脚本
service一般通过chkconfig工具进行管理。chkconfig管理的每个service需要在其init.d脚本中添加两行或更多注释行。
第一行告诉chkconfig 该service运行的默认级别,以及启动和停止的优先权。如果该service不在任何运行级启动,可以设置为”-“。
第二行包含描述信息。
针对刚才的可执行文件,编写service脚本capsuled如下:
#!/bin/bash # # capsuled A test service program # # chkconfig: - 92 12 # description: A test service prog # # @name: capsuled # @author: lanyang # @created: 2017.01.23 # # Source function library. . /etc/init.d/functionsPROG=capsuled RETVAL=0 FULL_PATH=/usr/local/sbin/capsulestart() {echo -n $"Starting $PROG ..."daemon $FULL_PATHRETVAL=$?echo }stop() {echo -n $"Stopping $PROG ..."killproc $FULL_PATHRETVAL=$?echo }case "$1" instart)start;;stop)stop;;restart)stopsleep 5startRETVAL=$?;;status)status $FULL_PATHRETVAL=$?;;*)echo $“Usage: $0 {start|stop|restart|status}”exit 1esacexit $RETVAL3.在/etc/init.d/目录下添加service脚本
# cp capsuled /etc/init.d # chmod a+x capsuled4.添加service,使chkconfig命令可以管理该service
# chkconfig --add capsuled5.设置service启动运行级别
# chkconfig --level 2345 capsuled on查看启动信息
# chkconfig --list capsuled capsuled 0:off 1:off 2:on 3:on 4:on 5:on 6:off6.启动service
# service capsuled start Starting capsuled ... [ OK ] # ps -ef | grep capsule root 17729 1 0 18:31 ? 00:00:00 /usr/local/sbin/capsule# service capsuled status capsule (pid 17729) is running...# service capsuled stop Stopping capsuled ... [ OK ]
7.小结
# service capsuled start与
# /etc/init.d/capsuled start作用是一样的。实际上,前者是通过调用后者实现的。
管理service使用的chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。其中,[0-6]指的是系统的7个运行级别。
/etc/rc[0-6].d目录,内容全部是链接(symbolic links),一般链接到/etc/init.d/目录下的某个service脚本文件。
例如,
其中,85是启动优先级;
$ ll /etc/rc6.d/K15httpd lrwxrwxrwx. 1 root root 15 Jul 30 2015 /etc/rc6.d/K15httpd -> ../init.d/httpd其中,15是停止优先级。
类似的,
92是启动优先级
# ll /etc/rc6.d/ | grep capsuled lrwxrwxrwx. 1 root root 18 Jan 23 17:52 K12capsuled -> ../init.d/capsuled12是停止优先级
新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!总结
以上是生活随笔为你收集整理的Linux服务与chkconfig的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 设计模式:外观模式(C++)【颜值很重要
- 下一篇: 纯干货:Linux抓包命令集锦(tcpd