自己簡單寫的一個php服務的啟動腳本和大家分享
思路(實現的原理):
1:function模塊+case語句多分支判斷
2:通過添加# chkconfig: 2345 43 89注釋實現開機自啟動(前提是把腳本放入/etc/init.d/目錄下 然後chmod給可執行權限,然後chkconfig --add phpd(腳本名稱))
3:每次命令執行是否成功用$?是否為0來給予反饋
#!/bin/bash
# php-fpm Start/Stop php-fpm
#
# chkconfig: 2345 43 89
#author andy
#date 20161218
#function php-fpm manager
#email fei1989118@126.com
#version 1.0
#check service status
#usage
. /etc/init.d/functions
#define var
check=`netstat -lnutp|grep php-fpm|wc -l`
function usage(){
echo "usage:$0 {start|stop|restart|status}"
exit
}
function start(){
if [ "$1" = "start" -a $check -ne 0 ];then
action "php is already started!" /bin/false
exit
elif [ "$1" = "start" -a $check -eq 0 ];then
sleep 1
/usr/local/sbin/php-fpm
if [ $? = 0 ];then
action "php start successfully!" /bin/true
else
action "php start failed!" /bin/false
exit
fi
fi
}
function stop(){
if [ "$1" = "stop" -a $check -eq 0 ];then
action "php is not running!" /bin/false
exit
elif [ "$1" = "stop" -a $check -ne 0 ];then
killall php-fpm
sleep 1
if [ $? = 0 ];then
action "php stoped successfully!" /bin/true
else
action "php stoped failed!" /bin/false
exit
fi
fi
}
function restart(){
if [ "$1" = "restart" -a $check -eq 0 ];then
action "php is not running!" /bin/false
sleep 1
/usr/local/sbin/php-fpm
if [ $? = 0 ];then
action "php start successfully!" /bin/true
else
action "php start failed!" /bin/false
exit
fi
elif [ "$1" = "restart" -a $check -ne 0 ];then
killall php-fpm
if [ $? = 0 ];then
action "php stoped successfully!" /bin/true
else
action "php stoped failed!" /bin/false
fi
sleep 1
/usr/local/sbin/php-fpm
if [ $? = 0 ];then
action "php start successfully!" /bin/true
else
action "php start failed!" /bin/false
exit
fi
fi
}
function status(){
if [ "$1" = "status" -a $check -eq 0 ];then
echo "php is not running!"
exit
elif [ "$1" = "status" -a $check -ne 0 ];then
echo "php is running"
exit
fi
}
case "$1" in
start) start $1
;;
stop) stop $1
;;
restart) restart $1
;;
status) status $1
;;
*) usage $1
esac
如果有不對的地方請多多指正
http://xxxxxx/Linuxjc/1182534.html TechArticle