Linux下service简介以及封装service

     service命令,顾名思义,就是用于管理Linux操作系统中服务的命令。首先要说明的是,这个命令不是在所有的的linux发行版里面都有,一般主要在redhat、fedora、mandriva和centos中有。通过file命令可以知道这个命令是一个脚本文件,位于/sbin目录下面,

它主要的工作原理是去/etc/init.d/目录下面寻找对应的服务脚本执行,调用方式如service tomcat start/stop/restart。

因此,在工作环境中不建议大家使用service命令,而换成/etc/init.d/XX.sh这种方式,原因是上面所说,service命令不是所有的发行版都有。

      介绍了service这个命令之后,接下来要介绍把自己的脚本封装成service服务的例子,也是本篇博客的重心,主要是为了说明service这个脚本的运行原理,希望大家可以自己去了解一下。

      1.准备自己的shell脚本myservice.sh,内容如下:

#!/bin/bash
#chkconfig:2345 80 90
#description:myservice
command=$1
case $command in
start)
        echo myservice start...
        ;;
stop)
        echo myservice stop...
        ;;
restart)
        echo myservice restart...
        ;;
*)
        echo input command error...
esac

    2.给这个脚本加上可执行权限,chmod +x myservice.sh。同时将这个脚本放在/etc/init.d/目录下,mv xx/myservice.sh /etc/init.d/。

     3.给这个脚本封装服务,chkconfig --add myservice.sh 。这里要注意的是刚开始一直运行这个命令出错,这个脚本中要注意的是第二行和第三行,chkconfig后面的2345 80 90 的意思是说明在/etc/rc2~rc5目录下创建一个S80myservice的链接,文件是链接到/etc/init.d/myservice脚本同时添加一个start参数,S是指在系统启动的时候就会执行这个脚本,表明服务已启动。同时会在rc0和rc6下面建立K90myservice的连接同时会添加一个stop参数,K代表系统关闭的时候会关闭这个服务。description后面是服务的描述。这两行是必须要写明的,不然会报错。

      4.执行这个服务,我的运行结果如下:

[root@localhost init.d]# service myservice start

myservice start...

[root@localhost init.d]# service myservice stop

myservice stop...

[root@localhost init.d]# service myservice restart

myservice restart...

    当然,在实际工作中,大家可以把对应的脚本替换到可以执行的位置。谢谢

你可能感兴趣的:(Linux下service简介以及封装service)