Shell脚本注册到Linux系统服务实例

摘要:Shell脚本注册到Linux系统服务实例...

作者:LoveCode标签:Shell,脚本,注册,Linux,系统服务,实例

这篇文章主要介绍了Shell脚本注册到Linux系统服务实例,本文给出一个可以作为Linux服务的脚本实例,及加入服务的方法等步骤,需要的朋友可以参考下

注册一个系统服务,开机自启动.

1 脚本编写

vim test.sh

写入内容

#!/bin/bash  
  
#description: hello.sh  
#chkconfig: 2345 20 81  
  
EXEC_PATH=/usr/local/  
EXEC=hello.sh  
DAEMON=/usr/local/hello.sh  
PID_FILE=/var/run/hello.sh.pid  
  
. /etc/rc.d/init.d/functions  
  
if [ ! -x $EXEC_PATH/$EXEC ] ; then  
       echo "ERROR: $DAEMON not found"  
       exit 1  
fi  
  
stop()  
{  
       echo "Stoping $EXEC ..."  
       ps aux | grep "$DAEMON" | kill -9 `awk '{print $2}'` >/dev/null 2>&1  
       rm -f $PID_FILE  
       usleep 100  
       echo "Shutting down $EXEC: [  OK  ]"      
}  
  
start()  
{  
       echo "Starting $EXEC ..."  
       $DAEMON > /dev/null &  
       pidof $EXEC > $PID_FILE  
       usleep 100  
       echo "Starting $EXEC: [  OK  ]"          
}  
  
restart()  
{  
    stop  
    start  
}  
  
case "$1" in  
    start)  
        start  
        ;;  
    stop)  
        stop  
        ;;  
    restart)  
        restart  
        ;;  
    status)  
        status -p $PID_FILE $DAEMON  
        ;;  
    *)  
        echo "Usage: service $EXEC {start|stop|restart|status}"  
        exit 1  
esac  
  
exit $?


2注册服务

chmod 700 test.sh
cp test.sh /etc/init.d/
chkconfig --add test.sh
chkconfig --list


3.删除服务

chkconfig  --del test.sh


另外一个实例:

#!/bin/bash

PRO_NAME=myservice
PRO_PATH=/etc/init.d
PID_PATH=/var/run/$PRO_NAME.pid

start(){
	echo "$PRO_NAME is starting"
	if [ ! -e $PID_PATH ]
	then
		echo $PPID > $PID_PATH
		sudo nginx
		sudo service php5-fpm start
		if [ -e $PID_PATH ]
		then
			echo -e "$PRO_NAME is starting [\033[33m success \033[0m]"
		else
			echo -e "$PRO_NAME is starting [\033[31m fail \033[0m]"
		fi
	else
		echo -e "$PRO_NAME had started [\033[31m no need to repeat \033[0m]"
	fi
}

rstart(){
	echo "$PRO_NAME is restarting"
	sudo nginx -s reload
	sudo service php5-fpm restart
	echo -e "$PRO_NAME is restarting [\033[33m success \033[0m]"
}

stop(){
	echo "$PRO_NAME is stopping"
	if [ -e $PID_PATH ]
	then
		sudo rm -f $PID_PATH
		sudo nginx -s stop
		sudo service php5-fpm stop
		if [ ! -e $PID_PATH ]
		then
		    echo -e "$PRO_NAME is stopping [\033[33m success \033[0m]"
		else
		    echo -e "$PRO_NAME is stopping [\033[31m fail \033[0m]"
		fi
	else
		echo -e "$PRO_NAME had stopped [\033[31m no need to repeat \033[0m]"
	fi
}

restart(){
	rstart
}

status(){

	if [ -e $PID_PATH ]
	then
		echo -e "$PRO_NAME is running [\033[33m yes \033[0m]"
	else
		echo -e "$PRO_NAME is not running [\033[31m no \033[0m]"
	fi
	pnginx=`pgrep nginx`
	pphpfpm=`pgrep php5-fpm`
	echo -e "nginx PID====>>\n$pnginx"
	echo -e "php5-fpm PID=====>\n$pphpfpm"
}

case $1 in
	start)
		start
	;;
	stop)
		stop
	;;
	restart)
		restart
	;;
	status)
		status
	;;
	*)
		echo "Usage: service $PRO_NAME {start|stop|restart|status}"
	exit 1
esac

exit $?


CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)