#!/bin/bash . /etc/profile . /etc/systemconfig myhost=$hostname hostname $myhost echo $myhost > /etc/hostname echo "$0 hostname is $hostname" . $MV_ROOT/bin/install_functions.sh #myhost=`cat /etc/hostname` # Before this script is called, the mysqld that facilitated the installation is killed. # We need to make sure to stop and start the mysqld that will be used post-install so # that the database can be initialized. /etc/rc.d/mysqld stop killall -9 mysqld /etc/rc.d/mysqld start sleep 1 # 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 # mysqld isn't running 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 # mysqld is running return 0 fi # should never get here return 1 } 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 sleep 1 /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 sleep 1 pacman --noconfirm -Sf mysql sleep 1 /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 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 else echo "Failed to look for databases. Will re-try." sleep 1 fi done /etc/rc.d/mysqld stop #umount /proc