“进程监控脚本并避免重复执行脚本”的版本间的差异
跳到导航
跳到搜索
第9行: | 第9行: | ||
+ | qcloud version 2022 | ||
+ | |||
+ | check_alive() | ||
+ | { | ||
+ | status=`ps ax | grep "$agent_name" | grep -v "grep" |wc -l` | ||
+ | |||
+ | if [ $status -ne 0 ]; then | ||
+ | # process exist | ||
+ | echo "stargate agent already exist" | ||
+ | exit 1 | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | ### Main Begin ### | ||
+ | |||
+ | check_user | ||
+ | check_alive | ||
2022年5月5日 (四) 06:07的版本
mysql进程监控脚本shell
cndw version CPID=$$ #$$ 是脚本运行的当前进程ID号 RUN="`ps -ef | grep "$0" | grep -v "grep" | grep -v "$CPID" | wc -l`" #$0 是脚本本身>的名字 [ "$RUN" -gt 1 ] && exit qcloud version 2022 check_alive() { status=`ps ax | grep "$agent_name" | grep -v "grep" |wc -l` if [ $status -ne 0 ]; then # process exist echo "stargate agent already exist" exit 1 fi } ### Main Begin ### check_user check_alive #!/bin/bash # 请放到crontab中运行,如(注意要以后台方式运行,因为脚本是常驻不退出的): # Usage */20 * * * * /home/mon/proce-moin.sh > /dev/null 2>&1 & LOCK_FILE="/tmp/my.lock" if [[ -e $LOCK_FILE ]] ; then echo "re-entry, exiting" exit 1 fi ### Placing lock file touch $LOCK_FILE echo -n "Started..." #ps -ef | grep proce-moin #if [ $? -eq 0 ] #then # exit 0 #fi #checkmyself #mypn=`ps -ef | grep proce-moin | grep -v grep | wc -l` ##if [ $mypn -gt 1 ] #if [ -n "$myupn" ] #then # exit 0 #fi # ps -ef | grep mysqld | grep -v grep if [ $? -eq 0 ] then echo "mysqlok" #exit 1 else systemctl start mysqld.service fi sleep 500 ### Removing lock rm -f $LOCK_FILE echo "Done."
R
https://github.com/eyjian/mooon/tree/master/mooon