BASH - 如何在网络接口启动并可访问互联网时执行少量应用程序?

时间:2014-09-21 08:09:33

标签: linux bash google-chrome ubuntu vnc

我有以下脚本在系统启动时通过/etc/init.d/service运行。但是在系统启动时,有时DHCP ip从路由器无效,因此它显示空页或无效页。如果能够真正ping 8.8.8.8或类似的话,我如何执行以下chrome-browser?

这样它不显示无效页面,并且不需要人工参与键盘刷新页面或手动重启脚本?

#!/bin/bash
export DISPLAY=:0.0
pgrep -f chromium-browser | xargs kill
pgrep -f x11vnc | xargs kill
sudo -u user1 chromium-browser "https://stackoverflow.com/questions" &
sudo -u user1 x11vnc -forever -passwd 1234 &

1 个答案:

答案 0 :(得分:2)

您可以在脚本中添加计时器:

while ! ping -c 1 8.8.8.8 | grep '1 received'
do
    :
done

如果您想确保它不会永远运行:

timeout=600 # seconds
start_time="$(date +%s)"
end_time="$(($start_time + $timeout))"
while ...
    if [ "$(date +%s)" -gt "$end_time" ]
    then
        echo "$0 timed out" >&2
        exit 1
    fi
    ...
done