编写服务脚本/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/SCRIPTS_NAME文件存在,则显示“SCRIPT_NAME is running...”,如果/var/log/subsys/SCRIPT_NAME文件不存在,则显示“SCRIPT_NAME is stopped...”
(7)在所有模式下禁止启动该服务,可用chkconfig和service命令管理
说明:SCRIPT_NAME为当前脚本名
[root@node1 init.d]# vi testsrv.sh
#!/bin/bash
#
# chkconfig: - 98 3
# description: test service
. /etc/init.d/functions
start(){
touch /var/lock/subsys/testsrv
action "Starting testsrv"
}
stop(){
rm -f /var/lock/subsys/testsrv
action "Stopping testsrv"
}
status(){
[ -f /var/lock/subsys/testsrv ] && echo testsrv is running || echo testsrv is stopped
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: /etc/init.d/testsrv {start|stop|status|restart}"
esac
网友评论