侧边栏壁纸
博主头像
封存记忆 博主等级

行动起来,活在当下

  • 累计撰写 32 篇文章
  • 累计创建 29 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

启动脚本

Administrator
2024-12-02 / 0 评论 / 0 点赞 / 18 阅读 / 0 字

宿主机上用

#! /bin/sh

cd /opt/zlmediakit

#进程名字可修改
PROC_NAME='./MediaServer -d'

#开启服务
start() {
#    用ps获取$PROC_NAME进程数量
  let NUM=`ps -aux | grep "${PROC_NAME}" | grep -v 'grep' | grep -v 'bash' |wc -l`
#    少于1,重启进程
  if [ "${NUM}" -lt "1" ];then
	#执行脚本命令
	nohup ${PROC_NAME} >/dev/null 2>&1 &
	echo  `date "+%Y/%m/%d %H:%M:%S> "` "${PROC_NAME} 进程已经重启"
#  elif [ "${NUM}" -gt "1" ];then
#	restart
  else
	echo  `date "+%Y/%m/%d %H:%M:%S> "` "${PROC_NAME} 进程已存在"
  fi
}

#停止服务
stop() {
		arrPROC=$(ps -ef | grep "`echo ${PROC_NAME}`" | grep -v 'grep' | awk '{print $2}')
		for p in $arrPROC; do
			kill $p;
			echo `date "+%Y/%m/%d %H:%M:%S> "`"${PROC_NAME}:$p 进程已杀死"
		done
	echo `date "+%Y/%m/%d %H:%M:%S> "` "服务已停止!"
}

#检查服务是否正常
check() {
	arrspar=$(ps -ef | grep "`echo ${PROC_NAME}`" | grep -v 'grep' | grep -v 'bash' | awk '{print $2}')
	echo `date "+%Y/%m/%d %H:%M:%S> "` "目前运行的服务监控进程(${PROC_NAME}):" ${arrspar:-"无"}
}

#重启脚本
restart() {
	stop
	sleep 4
	start
}
#使用帮助
usage() {
	cat <<EOF
		守护进程使用方法:

		usage: sh $0 check|start|stop|restart
		start       启动服务
		stop        停止服务
		restart	    重启服务
		check       检查服务是否正常
EOF
		exit
}
while true;do
	case $1 in
		start)
			start
			break
			;;
		help)
			usage
			break
			;;
		stop)
			stop
			break
			;;
		restart)
			restart
			break
			;;
		check)
			check
			break
			;;
		*)
			usage
			break
			;;
	esac
	shift
done

docker用

#! /bin/sh
cd /www

#进程名字可修改
PROC_NAME='php watch -c'

#开启服务
start() {
#    用ps获取$PROC_NAME进程数量
  let NUM=`ps | grep "${PROC_NAME}" | grep -v 'grep' | grep -v 'bash' |wc -l`
#    少于1,重启进程
  if [ "${NUM}" -lt "1" ];then
	#执行脚本命令
	sleep 5
	nohup ${PROC_NAME} > ./watch.log 2>&1 &
	echo  `date "+%Y/%m/%d %H:%M:%S> "` "${PROC_NAME} 进程已经重启"
  elif [ "${NUM}" -gt "1" ];then
	restart
  else
	echo  `date "+%Y/%m/%d %H:%M:%S> "` "${PROC_NAME} 进程已存在"
  fi
}

#停止服务
stop() {
		arrPROC=$(ps | grep "`echo ${PROC_NAME}`" | grep -v 'grep' | awk '{print $1}')
		for p in $arrPROC; do
			kill $p;
			echo `date "+%Y/%m/%d %H:%M:%S> "`"${PROC_NAME}:$p 进程已杀死"
		done
	echo `date "+%Y/%m/%d %H:%M:%S> "` "服务已停止!"
}

#检查服务是否正常
check() {
	arrspar=$(ps | grep "`echo ${PROC_NAME}`" | grep -v 'grep' | grep -v 'bash' | awk '{print $1}')
	echo `date "+%Y/%m/%d %H:%M:%S> "` "目前运行的服务监控进程(${PROC_NAME}):" ${arrspar:-"无"}
}

#重启脚本
restart() {
	stop
	sleep 4
	start
}
#使用帮助
usage() {
	cat <<EOF
		守护进程使用方法:

		usage: sh $0 check|start|stop|restart
		start       启动服务
		stop        停止服务
		restart	    重启服务
		check       检查服务是否正常
EOF
		exit
}
while true;do
	case $1 in
		start)
			start
			break
			;;
		help)
			usage
			break
			;;
		stop)
			stop
			break
			;;
		restart)
			restart
			break
			;;
		check)
			check
			break
			;;
		*)
			usage
			break
			;;
	esac
	shift
done
0

评论区