到目前为止我有这个。问题是,如果在几秒pythoncode.py
之前启动8*60*60
,那么它仍然可以继续运行超过8*60*60
几秒,直到完成,然后才会停止。即使它正在运行,我也需要它pythoncode.py
在精确(宽松地,+- 1 秒不是问题)秒处终止。8*60*60
#! /bin/bash
end=$((SECONDS+8*60*60))
while [ $SECONDS -lt $end ]; do
python3 /Users/Name/Desktop/pythoncode.py
done
我是一个初学者,所以解释一下这个例子具体要做什么,而不是一个一般的答案。谢谢,新年快乐。
答案1
您可以在后台调用 python 脚本并使用 sleep 函数作为计时器:
#Execute the script in the background
python3 /Users/Name/Desktop/pythoncode.py &
#Get its process id
pypid=$!
#Wait for the needed period in seconds
sleep "$end"
#Then force the process to be terminated
kill -9 $pypid