我正在使用代码
#!/bin/bash
while :; do
ffmpeg -re -i "input" output.mp4
done
循环播放.sh
文件。有没有办法编辑它,使其每天下午 5 点(CST)开始,然后在晚上 9 点(CST)停止?就像计时器一样,这样它就不会全天候运行,而是像 Windows 上的任务一样自行启动和停止?
答案1
尝试这个:
#!/bin/bash
work() {
# put your job here e.g.
ffmpeg -re -i "input" output.mp4
}
echo "Launching background job..."
work &
workPID=$!
RUNNING=true
while true; do
# If no child process, then exit
[ $(pgrep -c -P$$) -eq 0 ] && echo "All done" && exit
HOUR="$(date +'%H')"
if [ $HOUR -ge 17 -a $HOUR -lt 21 ] ; then
if [ "$RUNNING" == false ]; then
echo "Start work..."
kill -CONT $workPID
RUNNING=true
fi
else
if [ "$RUNNING" == true ]; then
echo "Stop work..."
kill -TSTP $workPID
RUNNING=false
fi
fi
sleep 2
done
该脚本使用 将该作业作为子进程启动work &
,然后监视该进程并根据需要冻结/解冻它。