Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Copyright 2008 Evenflow, Inc., 2010 Dropbox
- #
- # Environment script for the dropbox executable.
- WAIT_TIME=5 #initial time to wait between checking the internet connection
- #HOSTS="www.google.com www.wikipedia.org 8.8.8.8 208.67.222.222"
- HOSTS="www.google.com www.wikipedia.org "
- PAR=$(dirname $(readlink -f $0))
- OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
- LD_LIBRARY_PATH=$PAR${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
- #non-zero exit code iff none of the hosts could be reached
- check_net() {
- local ret=1
- for i in $HOSTS; do
- #ping -w2 -c2 $i > /dev/null 2>&1 && ret=0 && break
- curl -o /dev/null $i > /dev/null 2>&1 && ret=0 && break
- done
- echo $ret
- }
- #if dropbox is running; kill it. Then start dropbox
- start_dropbox() {
- local tmp=`ps ax|grep -E "[0-9] $PAR/dropbox"|grep -v grep`
- if [ -n "$tmp" ]; then
- kill -9 $(pidof dropbox) > /dev/null 2>&1
- fi
- exec $PAR/dropbox $@ > /dev/null 2>&1 &
- }
- #loop over: start dropbox iff check_net returns 0
- #loop (and with it, the entire script) terminates when dropbox has been restarted,
- #+ or the waiting time has exeeded 1500 seconds (it grows 50% with each iteration of the loop)
- attempt_startup() {
- while [ $WAIT_TIME -lt 1500 ] ; do
- if [ $(check_net) -eq 0 ]; then
- start_dropbox
- exit
- fi
- sleep $WAIT_TIME
- #WAIT_TIME=$(($WAIT_TIME+$WAIT_TIME/2))
- let "WAIT_TIME += WAIT_TIME/2"
- done
- }
- start_dropbox
- attempt_startup &
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement