杀死进程,等待一段时间,然后重新启动进程?

时间:2018-11-05 05:41:26

标签: python bash unix raspberry-pi

我最近开始使用python进行编程,并且在编程方面仍然处于初学者水平。我创建了自己的命令行python脚本,该脚本在Raspberry PI上运行。该脚本可以正常工作,但我需要不时地对其进行重置。

我想知道是否有创建.sh脚本的方法来执行以下循环:

  1. 启动python脚本
  2. 等待60分钟到100分钟之间的随机时间(回显脚本运行的时间)
  3. 然后终止进程并等待5分钟到15分钟之间-冷静下来(回声一下,冷静下来要持续多长时间)
  4. 然后循环回到顶部

我知道可能有一个非常简单的解决方案,但是我仍在学习! 谢谢!

2 个答案:

答案 0 :(得分:1)

如果您的系统具有timeout命令,则非常简单:

while true; do
    t="$(shuf -i 60-100 -n 1)"
    echo "run for $t minutes"
    timeout "$t"m python yourScript
    t="$(shuf -i 5-15 -n 1)"
    echo "pause for $t minutes"
    sleep "$t"m
done

如果您没有timeout命令,请将行timeout ...替换为

python yourScript &
sleep "$t"m
kill %+

答案 1 :(得分:0)

#!/usr/bin/bash

MINUTESTOSLEPP=$1
MINUTESTOSLEPP=$MINUTESTOSLEPP"m"



function sleep_and_run_rasberry_pi()
{
    echo $MINUTESTOSLEPP
    python rasberry_pi.py
    sleep $MINUTESTOSLEPP
    echo "The Script has been halted for "$MINUTESTOSLEPP" minutes"

    kill -9 `ps -ef | grep rasberry_pi | awk '{print $2}' | head -n1`

    sleep 10m
}

################# MAIN Function #####################
while 1
do
  sleep_and_run_rasberry_pi
done

使用以下命令运行脚本
sh testscript.sh 45
这意味着它将休眠45分钟并杀死raspberry_pi进程