脚本范例
#!/bin/bash #this script is for check process NUM_VEN=`ps aux | grep ventilator.py | grep -v grep | wc -l` NUM_FTP=`ps aux | grep ftpsender.py | grep -v grep | wc -l` NUM_WORKER=`ps aux | grep worker.py | grep -v grep| wc -l` cd $(dirname $0) kill_process() { ps aux | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9 sleep 1 } start_worker() { for((i=0;i<$1;i++)) do nohup python ./worker.py & sleep 1 done } move_file() { mv /notebooks/ai_mos_8.1/ai_mos/backtracking/* /notebooks/VOLTE_SLICE_GM } TIME=`date +%H` if [ "$TIME" -ge 9 -a "$TIME" -lt 19 ] then echo "no check" exit 1 fi if [ $NUM_FTP -lt 1 ] then kill_process ftpsender.py kill_process worker.py kill_process ventilator.py move_file nohup python ./ftpsender.py & sleep 5 start_worker 6 sleep 2 nohup python ./ventilator.py & elif [ $NUM_WORKER -lt 6 ] then # kill_process worker.py START_NUM=$((6-$NUM_WORKER)) if [ $NUM_WORKER -eq 0 ];then kill_process ventilator.py move_file start_worker $START_NUM nohup python ./ventilator.py & else start_worker $START_NUM fi sleep 2 if [ $NUM_VEN -eq 0 ];then move_file nohup python ./ventilator.py & fi elif [ $NUM_VEN -lt 1 ] then kill_process ventilator.py move_file nohup python ./ventilator.py & else echo "every thing is ok" fi
修改之后,实现监控work的六个线程和ventilator.py一个进程
#!/bin/bash #this script is for check process NUM_VEN=`ps aux | grep ventilator.py | grep -v grep | wc -l` NUM_WRITE=`ps aux | grep write_worker.py | grep -v grep | wc -l` NUM_WORKER=`ps aux | grep worker.py | grep -v grep| wc -l` cd $(dirname $0) kill_process() { ps aux | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9 sleep 1 } start_worker() { for((i=0;i<$1;i++)) do nohup python ./write_worker.py $i >/dev/null 2>&1 & sleep 1 nohup python ./worker.py >/dev/null 2>&1 & sleep 1 done } if [ $NUM_WORKER -lt 6 -a $NUM_VEN -lt 1] then kill_process ventilator.py kill_process worker.py kill_process write_worker.py start_worker 3 sleep 2 nohup python ./ventilator.py >/dev/null 2>&1 & else echo "every thing is ok"
注明:写的一般,反正够用,仅供平日参考