首页 > 代码库 > shell脚本生成服务演示服务启动、停止过程。
shell脚本生成服务演示服务启动、停止过程。
1、编写服务脚本/root/bin/testsrv.sh,完成如下要求
1、编写服务脚本/root/bin/testsrv.sh,完成如下要求
(1) 脚本可接受参数: start, stop, restart, status
(2) 如果参数非此四者之一,提示使用格式后报错退出
(3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功”
考虑:如果事先已经启动过一次,该如何处理?
(4) 如是stop:则删除/var/lock/subsys/SCRIPT_NAME, 并显示“停止完成”
考虑:如果事先已然停止过了,该如何处理?
(5) 如是restart,则先stop, 再start
考虑:如果本来没有start,如何处理?
(6) 如是status, 则如果/var/lock/subsys/SCRIPT_NAME文件存在,则显示
“ SCRIPT_NAME is running...”
如果/var/lock/subsys/SCRIPT_NAME文件不存在,则显示“ SCRIPT_NAME
is stopped...”
其中: SCRIPT_NAME为当前脚本名
(7)在所有模式下禁止启动该服务,可用chkconfig 和 service命令管理
脚本测试用于实验使用。(以下脚本并未全部按照题目所描述写)
#!/bin/bash #chkconfig: 345 98 2 #descrption:Testing services #script_name:testser #Author:Li . /etc/rc.d/init.d/functions #调用系统函数文件(注释) ser=‘/var/lock/subsys/script_shell‘ #模拟服务文件 start(){ if [ -e $ser ] ;then echo "The service is already running" #判断文件是否存在并打印相应内容 else touch $ser #创建文件 action "service started successfully" #action 内置函数 文章结尾有注释 fi } stop(){ if [ -e $ser ] ;then rm -rf $ser action "service stop " else echo "service not running" fi } restart(){ if [ -e $ser ] ;then sleep 0.5 #间隔时间(仅为模拟服务启动过程使用) stop sleep 0.5 start else action "service not running" /bin/false sleep 0.5 start fi } status(){ if [ -e $ser ];then echo -e "\tThe service is running..." else echo -e "\tservice not running" fi } case $1 in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Please enter the correct parameters (start|stop|restart|status)" esac
chkconfig --add testser #将其生成为服务 (请将脚本放置于/etc/init.d/目录下执行) chkconfig tesetser off #可以禁止该服务开机启动
#执行结果 [root@mage_C6 ~]# service testser start service started successfully [ OK ] [root@mage_C6 ~]# service testser stop service stop [ OK ] [root@mage_C6 ~]# service testser restart service not running [FAILED] service started successfully [ OK ] [root@mage_C6 ~]# service testser start The service is already running [root@mage_C6 ~]# service testser status The service is running... [root@mage_C6 ~]#
此脚本将 /var/lock/sybsys/script_shell 作为测试服务使用。利用它模拟一个服务的启动、停止等过程。
注释:action:打印某个信息并执行给定的命令,它会根据命令执行的结果来调用 success,failure方法
如果想了解你参考下面这位兄台的博客。
http://www.cnblogs.com/image-eye/archive/2011/10/26/2220405.html
本文出自 “秋季” 博客,请务必保留此出处http://lxlxlx.blog.51cto.com/3363989/1875458
shell脚本生成服务演示服务启动、停止过程。