文章目录 #!/bin/bash # 功能:只在白天运行程序,在时间轴上做一个判断,白天指的是6点-19点 while true do start=06 # 开始检测的时间 end=19 # 结束检测的时间 fulltime=$(date "+%Y-%m-%d %H:%M:%S") # 完整的时间格式 time=$(date "+%H") # 只显示几点,不显示分,秒 procedure=`ps -ef|grep "xiaoshan0830.py"|grep -v grep|wc -l` # 统计开启的进程数 procedurenum=`ps -aux | grep xiaoshan0830.py | grep -v grep |awk '{print $2}'` # 进程号 # %Y-%m-%d %H:%M:%S if [ $time -eq $end ]; then # 如果时间=19 # 原来的逻辑是6≤时间≤19,所以整个19点都在杀死进程,也证实了为何只有19点才echo echo $time # 输出现在的时间点 kill -9 $procedurenum # 杀死进程 echo "早上6点-晚上7点运行程序。。。" fi if [ $time -gt $start -a $time -lt $end ]; then # 如果6<时间<19点 if [ $procedure -eq 0 ]; then # 如果进程数为0 source /home/ubuntu/anaconda3/bin/activate base python /home/ubuntu/learn/readRtsp.py>log.txt& # 需要加&,否则进程会阻塞,运行程序后面的语句无法进行。 echo "=================================================================" fi fi done