在x时间之后杀死fbi帧缓冲进程

时间:2013-06-07 18:19:07

标签: unix timer sh wait framebuffer

我的sh脚本有问题。

我正在使用树莓,并希望在我的脚本中使用fbi帧缓冲区显示图像10秒钟。在这10秒之后,我希望我的脚本能够运行其他顺序命令。

我写道:

[...]
if[...]
fbi --noverbose $MEDIAFILE
MYPID=pgrep fbi
echo "[$MYPID] this is MY PID - and now i kill it!!!"
[...]

但是我的脚本在第一行(fbi --noverbose...)停止了,我无法在下一行中将其删除:(。

我无法在后台执行命令,因为我需要查看图像...

任何想法?谢谢!

2 个答案:

答案 0 :(得分:1)

如果fbi无法在后台运行,请将kill命令放在后台。要在延迟后实现,请使用先睡眠的子shell,然后运行kill命令。该脚本看起来像这样:

( sleep 10 ; kill $(pgrep fbi) ) &
fbi somefile

答案 1 :(得分:1)

如果您的目标是在一定的秒数后不再显示,您还可以添加命令行选项“-t secs”和“-1”。 “-t secs”用于幻灯片放映,是显示下一个图像的时间,“ - 1”表示幻灯片放映不会循环播放。 在你的情况下:

fbi --noverbose -t 10 -1 $MEDIAFILE

这显示图像十秒钟,然后fbi命令结束。无需杀死进程。