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 startservice started successfully                               [  OK  ][root@mage_C6 ~]# service testser stopservice stop                                               [  OK  ][root@mage_C6 ~]# service testser restartservice not running                                        [FAILED]service started successfully                               [  OK  ][root@mage_C6 ~]# service testser startThe 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/p_w_picpath-eye/archive/2011/10/26/2220405.html