diff options
Diffstat (limited to 'abs/core-testing/LinHES-config-svn')
| -rwxr-xr-x | abs/core-testing/LinHES-config-svn/install_db_chroot.sh | 120 | 
1 files changed, 80 insertions, 40 deletions
diff --git a/abs/core-testing/LinHES-config-svn/install_db_chroot.sh b/abs/core-testing/LinHES-config-svn/install_db_chroot.sh index 1a0131e..f187ba8 100755 --- a/abs/core-testing/LinHES-config-svn/install_db_chroot.sh +++ b/abs/core-testing/LinHES-config-svn/install_db_chroot.sh @@ -11,53 +11,93 @@ echo "install_db_chroot hostname is $hostname"  . $MV_ROOT/bin/install_functions.sh  #myhost=`cat /etc/hostname` -#mount -t proc none /proc -pacman --noconfirm -Sf mysql -/etc/rc.d/mysqld - -status=1 -mysqlstatus=1 -while [ ! $status = 0  ] -do -    /etc/rc.d/mysqld stop -    sleep 1 -    /etc/rc.d/mysqld start -    mysqlstatus=$? -    if [ $mysqlstatus = 0 ] -    then -   	mysql -e "show databases;" -        showstatus=$? -        if [ $showstatus = 0 ] -        then -            pacman --noconfirm -R mythdb-initial -            pacman --noconfirm -S mythdb-initial -            $MV_ROOT/bin/restore_default_settings.sh -c load -            DISPLAY=127.0.0.1:0  $MV_ROOT/bin/MythVantage  -t  restore,default_1 -            $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings -            $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install - -            update_db_settings HostServiceMythWEB "1" -            echo 'UseMythWEB="1"' >> /etc/systemconfig - -            #update database to allow user jobs on this host. -            $MV_ROOT/bin/restore_default_settings.sh  -c  USERJOBALLOW -            $MV_ROOT/bin/restore_default_settings.sh  -c  ACCESSCONTROL -	   if [ -d /data/srv/mysql/mythconverg ] -	   #if [ -d /var/lib/mysql/mythconverg ] -	   then +# Put a limit on how many times we try to (re-)start MySQL +success_test() { +    # parameter: number of tries to start mysqld so far +    PID=`pidof -o %PPID /usr/sbin/mysqld` +    if [ -z "$PID" ]; then +	if [ $1 -gt 3 ]; then +	    echo "ERROR: Failed to start MySQL server in $1 attempts." +	    sleep 5 +	    exit 1 +	else +	    echo "Tried $1 time(s) to start MySQL server."  +	    return 1 +	fi +    else +	return 0 +    fi +} + +mysqld_tries=0 +# See if MySQL server is running; try several ways to start it if it's not. +while true; do +    success_test $mysqld_tries +    if [ $? -eq 0 ]; then +	echo "MySQL server is running" +	break +    else +	echo "MySQL server is not running.  Trying to start it." +	# Maybe it just needs to be started +	/etc/rc.d/mysqld start +	mysqld_tries=$((mysqld_tries + 1)) +	success_test $mysqld_tries +	if [ $? -eq 0 ]; then +	    echo "MySQL server has been started" +	    break +	else +	    echo "MySQL server may not be installed.  Trying to install it." +	    # Maybe it's not installed; try (re-)installing it and starting it +	    pacman --noconfirm -Sf mysql +	    /etc/rc.d/mysqld start +	    mysqld_tries=$((mysqld_tries + 1)) +	    success_test $mysqld_tries +	    if [ $? -eq 0 ]; then +		echo "MySQL server has been installed and started" +		break +	    else +		echo "MySQL server would not start, even after (re-)installing it." +	    fi +	fi +    fi +done + +# At this point, MySQL server should be up and running + +while true; do +    mysql -e "show databases;" + +    if [ $? -eq 0 ]; then +        pacman --noconfirm -R mythdb-initial +        pacman --noconfirm -S mythdb-initial +        $MV_ROOT/bin/restore_default_settings.sh -c load +        DISPLAY=127.0.0.1:0  $MV_ROOT/bin/MythVantage  -t  restore,default_1 +        $MV_ROOT/bin/restore_default_settings.sh -c restore -t syssettings +        $MV_ROOT/bin/systemconfig.sh misc,hostype,this_is_install +	 +        update_db_settings HostServiceMythWEB "1" +        echo 'UseMythWEB="1"' >> /etc/systemconfig +	 +        #update database to allow user jobs on this host. +        $MV_ROOT/bin/restore_default_settings.sh  -c  USERJOBALLOW +        $MV_ROOT/bin/restore_default_settings.sh  -c  ACCESSCONTROL +	#if [ -d /var/lib/mysql/mythconverg ] +	if [ -d /data/srv/mysql/mythconverg ]; then     	     # pacman --noconfirm -R webcalendar           #   pacman --noconfirm --nodeps  -S webcalendar -	    status=0 -	   fi +	    break +	else +	    echo "Failed to create mythconverg database.  Will re-try." +	    sleep 1 +	fi  #        if [ $SystemType = "Master_backend" ]  #        then  #             $MV_ROOT/bin/restore_default_settings.sh  -c  BECONFIG  -s master  -a $dbhost  #        fi -   	fi +    else +	echo "Failed to look for databases.  Will re-try." +	sleep 1      fi  done  /etc/rc.d/mysqld stop  #umount /proc - - -  | 
