我有以下脚本,它在系统启动时通过/etc/init.d/service 运行。但是在系统启动时,有时路由器的 DHCP ip 无效,因此它显示空页面或无效页面。如果 chromium-browser 确实可以 ping 8.8.8.8 或类似版本,我该如何执行它?
这样它就不会显示无效页面并且不需要人工参与键盘刷新页面或手动重启脚本?
#!/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 &
最佳答案
您可以在脚本本身中添加一个计时器:
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
关于linux - BASH - 如何在网络接口(interface)启动并可访问互联网时执行少量应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957185/