У меня есть bash-скрипт, который я запускаю через cron для перезапуска vlc (я использую vlc для показа потока с IP-камеры, которую я использую в качестве радионяни - поток постепенно задерживается, поэтому я запускаю этот скрипт, чтобы убить все экземплярыVLC и перезапустите его).Этот скрипт прекрасно работал в Ubuntu 11.04 в течение года.Я обновился до Ubuntu 11.10 (о, глупый я), и теперь он работает правильно, только если я запускаю его с включенной опцией отладки bash (bash -x script.sh).Если я запускаю его без опции -x, сценарий успешно убивает все экземпляры vlc, но затем завершает работу и не может перезапустить vlc.Я понятия не имею, почему.Обратите внимание, что не имеет значения, если я запускаю его с помощью или cron или direct в командной строке, без опции -x он убивает vlc, но никогда не запускает vlc.
Вот оно:
#!/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