本文共 3311 字,大约阅读时间需要 11 分钟。
在Linux的某些系统服务中,需要自己定制启动服务的脚本。通常会使用Cash语句来实现。
一般用于程序启动脚本
Syntax:case $1 in Param1) Commands ;; Param2) Commands ;; *) Commands esac
Example:
#!/bin/bash -e#/bin/bash -e 表示系统发生第一个错误时就中止脚本执行#每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。# chkconfig:35 12 45#第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。# description:Service start script#第二行对服务进行描述,可以用\ 跨行注释。RETVAL=0case $1 instart) echo "service starting..." ;;stop) echo "service stopping..." ;;restart)#$0 meating is this one script sh $0 stop || true# $0 stop || ture 表示出现错误时候不想中止的指令 sh $0 start ;;*) echo "input syntax error!" echo "Usage:Is [start|stop|restart]" exit 1 ;;esacecho $RETVAL###################################SCRIPT END
######################################## Apache 启动脚本#!/bin/bash -e [ -f /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions RETVAL=0 #使用变量作为判断和关联上下本的载体httpd="/application/apache/bin/httpd" #使用变量简化使用指令的决定路径start() { $httpd -k start >/dev/null 2>&1 #httpd -k start|restart|graceful|stop|graceful-stop 发送信号使httpd启动、重新启动或停止 # daemon httpd >/dev/null 2>&1 # 2>&1 将错误输出到正确输出,即标准输出和错误输出一起输出,管道|不通过错误输出 RETVAL=$? [ $RETVAL -eq 0 ] && action "启动 httpd:" /bin/true ||\ action "启动 httpd:" /bin/false return $RETVAL } stop() { $httpd -k stop >/dev/null 2>&1 # killproc httpd >/dev/null 2>&1 [ $? -eq 0 ] && action "停止 httpd:" /bin/true ||\ action "停止 httpd:" /bin/false return $RETVAL } case "$1" in start) start #Call function start() ;; stop) stop ;; restart) sh $0 stop sh $0 start ;; *) echo "Format error!" echo $"Usage: $0 {start|stop|restart}" exit 1 ;; esac exit $RETVAL ####################################### SCRIPT END
################################ Postfix service 启停脚本#!/bin/bash -e# chkconfig:35 53 55# discription:postfixstart() { echo "Starting postfix..." postfix start &> /dev/null echo "OK!"}stop() { echo -n "stopping postfix..." postfix stop &> /dev/null echo "OK!"}reload() { echo -n "Loading postfix configure file" postfix reload &> /dev/null echo "OK!"}status() { postfix status &> /dev/null if [ $? -eq 0 ] then echo "running!" else echo "stop!" if}help() { echo "syntax error!" echo "Uasge:Is [start|stop|restart|reload|status]"}case $1 instart) $1 ;;stop) $1 ;;restart) stop start ;;reload) $1 ;;status) $1 ;;*) help ;;esac################################SCRIPT END
转载:http://blog.csdn.net/jmilk/article/details/50407834