提问人:Hack-R 提问时间:6/17/2018 最后编辑:Hack-R 更新时间:6/17/2018 访问量:879
使用监视每 N 秒更新一次 linux 中显示的图像失败
Use of watch to update image displayed in linux every N seconds fails
问:
我有一些代码可以在服务器上自动生成机器学习图,并在适当的时间将图发送到物联网客户端进行显示。
数据管道正常工作。但是,当推送新图时,我尝试近乎实时地更新图像是行不通的。
目前我的方法是:
user@client:~/data_viz $ watch -n3 feh -F plot0.png --zoom 200
其中是一些任意轻量级的 Linux 图像查看器。feh
问题在于,即使文件()被成功覆盖,查看器也不会更新,直到您杀死它并重新启动它。plot0.png
更新:我用下面的 Bash 方法实现了世界上最糟糕的版本。现在唯一的问题是它每秒都会闪烁桌面,如果我不解决这个问题,无疑会导致癫痫发作......
$ watch -n2 sudo bash watch.sh
在哪里watch.sh
#!/bin/bash
i="0"
while [ $i -lt 4 ]
do
pkill feh
sleep 1
feh -F plot0.png --zoom 200&
sleep 1
pkill feh
done
即使使用 Esc 和 ctrl+c,似乎也没有办法真正打破无限循环。我希望循环是无限的,但我也希望能够在必要时中断它。
答:
2赞
David C. Rankin
6/17/2018
#1
虽然与大多数图像查看器/编辑器一样,它不会监视图像文件是否有更改,并在发生更改时自动重新加载,但它确实提供了选项,该选项将导致在指定为蒸腾的秒数后重新加载图像。例如:feh
-R, --reload <int>
feh
<int>
feh --reload 5 image.png
将导致每秒重新加载一次。 解释:feh
image.png
5
man 1 feh
-R, --reload <int> Reload filelist and current image after int seconds. Useful for viewing HTTP webcams or frequently changing directories. (Note that the filelist reloading is still experimental.) If an image is removed, feh will either show the next one or quit. However, if an image still exists, but can no longer be loaded, feh will continue to try loading it.
评论
feh
feh
-R, --reload int
man 1 feh
)-R 5
:)