嗨我有5个无限的python脚本。我想先运行第一个脚本,1小时后终止第一个脚本,然后运行第二个无限脚本,1小时后终止第二个脚本。它的代码是什么问题?我怎么能 ?请不要建议我给python脚本时间。我可以做id,但它对我的项目没用。只需要从shell中杀死无限的脚本。非常感谢你
我的SHELL SCRIPT
#!/bin/bash
START=`date +%s`
while true
do
if [ $(( $(date +%s) - 10 )) -lt $START ]; then
python infinite.py
else
pkill python
break
fi
done
START=`date +%s`
while true
do
if [ $(( $(date +%s) - 10 )) -lt $START ]; then
python infinite.py
else
sudo pkill python
break
fi
done
START=`date +%s`
while true
do
if [ $(( $(date +%s) - 10 )) -lt $START ]; then
python infinite.py
else
pkill python
break
fi
done
它的我的PYTHON SCRIPT
x = 0
while True:
print("Hello, World ! " + str(x))
x +=1
答案 0 :(得分:1)
GNU coreutils附带timeout
工具。
按顺序运行五个脚本,infinite1.py到infinite5.py,每个小时一小时:
for script in infinite_{1..5}.py
do
timeout 1h python "$script"
done
答案 1 :(得分:0)
此代码将在一小时内在后台运行您的脚本,然后终止该过程
START=$(date '+%s')
python infinite.py &
while true
do
if [ $(( $(date '+%s') - $START )) -lt 3600 ]; then
echo "Still running"
else
pkill -f 'infinite.py'
break
fi
done