宿主机上用
#! /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
评论区