我有一个bash脚本,我通过cron运行重新启动vlc(我使用vlc显示来自IP摄像头的流作为婴儿监视器使用 - 流得到逐步延迟,所以我运行这个脚本来杀死vlc的所有实例并重新启动它)。这个脚本在Ubuntu 11.04中运行良好一年。我升级到Ubuntu 11.10(哦,傻我),现在只有在打开bash调试选项(bash -x script.sh)的情况下运行它才能正常工作。如果我运行它没有-x选项,脚本成功杀死了vlc的所有实例,但是然后退出并且无法重启vlc.I我不知道为什么。请注意,如果我通过或cron运行它,或者直接在命令行上运行它,没有-x选项,那么它会杀死vlc但从不运行vlc。Bash脚本在调试时运行(-x)但运行正常时失败
这就是:
#!/bin/bash
DISPLAY=:0
export DISPLAY
VPID=($(ps -e | grep vlc | awk '{print $1;}'))
if [ -n "$VPID" ];then
while [ -n "$VPID" ];do
kill $VPID
VPID=($(ps -e | grep vlc | awk '{print $1;}'))
done
vlc --volume=900 http://lily:@192.168.1.43/videostream.asf &
sleep 10
WID=($(xwininfo -display :0 -name "http://192.168.1.43/videostream.asf - VLC media player" -int | awk '/Window id:/ {print $4}'))
sleep 10
xdotool windowmove --sync $WID 0 0
xdotool windowsize --sync $WID 1600 1000
exit
fi
exit
'pkill的vlc'比你目前的杀害所有VLC工艺方法简单得多。 –
谢谢,我会给它一个 - 我总是倾向于使用锤子来破解一个坚果;) – prupert