From 93829be6cd5e443c6ed7ac4159e44353ab400478 Mon Sep 17 00:00:00 2001 From: Christoph Kuchenbuch Date: Sat, 28 Apr 2018 01:33:46 +0200 Subject: [PATCH] install_mysql.sh: Add library 'libaio-dev' to the required debian packages. Change detecting init script/systemd service file. --- install_mysql.sh | 91 +++++++++++++++++++++++++++--------------------- 1 file changed, 51 insertions(+), 40 deletions(-) diff --git a/install_mysql.sh b/install_mysql.sh index d6209ec..99afa36 100755 --- a/install_mysql.sh +++ b/install_mysql.sh @@ -34,6 +34,7 @@ _required_debian_packages="default-jdk libpcre3-dev libreadline-gplv2-dev libsystemd-dev + libaio-dev cpanminus" install_additional_debian_packages=true @@ -906,26 +907,36 @@ echo "SYSTEMD_PID_DIR=$SYSTEMD_PID_DIR" >> ${logdir}/main.log echo "MYSQL_SYSV_INIT_SCRIPT=$MYSQL_SYSV_INIT_SCRIPT" >> ${logdir}/main.log echo "VSERVER_GUEST=$VSERVER_GUEST" >> ${logdir}/main.log +MYSQL_INIT_SCRIPT="" +MYSQLD_SERVICE_FILE="" +if $SYSTEMD_EXISTS ; then + if [[ -f "/etc/systemd/system/$MYSQL_SERVICE_FILE" ]]; then + MYSQLD_SERVICE_FILE="${MYSQL_SERVICE_FILE}" + else + # - Is Service exclusive controlled by systemd + # - + if systemctl -t service list-unit-files \ + | grep -e "^mysql" \ + | grep -q -E "(enabled|disabled|generated)" 2> /devnull ; then -_MYSQL_INITSCRIPT= -if [ -f "/etc/init.d/$MYSQL_SYSV_INIT_SCRIPT" ];then - _MYSQL_INITSCRIPT="${MYSQL_SYSV_INIT_SCRIPT}" -elif [ -f /etc/init.d/mysql ];then - _MYSQL_INITSCRIPT="mysql" -elif [ -f /etc/init.d/mysql.server ];then - _MYSQL_INITSCRIPT="mysql.server" -fi + MYSQLD_SERVICE_FILE=$(systemctl -t service list-unit-files \ + | grep -e "^mysql" \ + | awk '{print$1}'\ + | head -1) + fi + fi + +fi -_SYSTEMD_SERVICE_FILE= if [[ -f "/etc/systemd/system/$MYSQL_SERVICE_FILE" ]]; then - _SYSTEMD_SERVICE_FILE="${MYSQL_SERVICE_FILE}" -elif [[ -f /etc/systemd/system/mysql.service ]] ; then - _SYSTEMD_SERVICE_FILE="mysql.service" -elif [[ -f /etc/systemd/system/mysqld.service ]] ; then - _SYSTEMD_SERVICE_FILE="mysqld.service" -fi + MYSQL_INIT_SCRIPT="${MYSQL_SYSV_INIT_SCRIPT}" +elif [[ -x "$(realpath /etc/init.d/mysql.server)" ]]; then + MYSQL_INIT_SCRIPT="mysql.server" +elif [[ -x "$(realpath /etc/init.d/mysql)" ]]; then + MYSQL_INIT_SCRIPT="mysql" +fi -if [[ -z "$_MYSQL_INITSCRIPT" ]] && [[ -z "$_SYSTEMD_SERVICE_FILE" ]] && $UPDATE_MYSQL ; then +if [[ -z "$MYSQL_INIT_SCRIPT" ]] && [[ -z "$MYSQLD_SERVICE_FILE" ]] && $UPDATE_MYSQL ; then fatal "Kein start/stop Sevice File/ Init Script gefunden.." fi @@ -1068,16 +1079,16 @@ if [[ "X${PIDS}X" != "XX" ]];then echo "## - Stop MySQL Service" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log if $SYSTEMD_EXISTS ; then - if [[ -n "$_SYSTEMD_SERVICE_FILE" ]] ; then - echo "systemctl stop ${_SYSTEMD_SERVICE_FILE}" >> ${logdir}/main.log - systemctl stop ${_SYSTEMD_SERVICE_FILE} >> ${logdir}/main.log 2>&1 + if [[ -n "$MYSQLD_SERVICE_FILE" ]] ; then + echo "systemctl stop ${MYSQLD_SERVICE_FILE}" >> ${logdir}/main.log + systemctl stop ${MYSQLD_SERVICE_FILE} >> ${logdir}/main.log 2>&1 else - echo "systemctl stop ${_MYSQL_INITSCRIPT}" >> ${logdir}/main.log - systemctl stop ${_MYSQL_INITSCRIPT} >> ${logdir}/main.log 2>&1 + echo "systemctl stop ${MYSQL_INIT_SCRIPT}" >> ${logdir}/main.log + systemctl stop ${MYSQL_INIT_SCRIPT} >> ${logdir}/main.log 2>&1 fi else - echo "/etc/init.d/$_MYSQL_INITSCRIPT stop" >> ${logdir}/main.log - /etc/init.d/$_MYSQL_INITSCRIPT stop >> ${logdir}/main.log 2>&1 + echo "/etc/init.d/$MYSQL_INIT_SCRIPT stop" >> ${logdir}/main.log + /etc/init.d/$MYSQL_INIT_SCRIPT stop >> ${logdir}/main.log 2>&1 fi sleep 5 @@ -1124,7 +1135,7 @@ fi ## - Deactivate starting MySQL database service at boot time and ## - cleanup System from SysVinit script and/or Systemd service file ## ----- -if [[ -n "$_MYSQL_INITSCRIPT" ]] || [[ -n "$_SYSTEMD_SERVICE_FILE" ]]; then +if [[ -n "$MYSQL_INIT_SCRIPT" ]] || [[ -n "$MYSQLD_SERVICE_FILE" ]]; then echo "" echo "" echo -e "\033[37m\033[1mDeactivate starting MySQL database service at boot time and" @@ -1139,15 +1150,15 @@ if [[ -n "$_MYSQL_INITSCRIPT" ]] || [[ -n "$_SYSTEMD_SERVICE_FILE" ]]; then echo "## -----" >> ${logdir}/main.log fi -if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then +if [[ -n "$MYSQL_INIT_SCRIPT" ]] ; then - if [ -f "/etc/init.d/$_MYSQL_INITSCRIPT" ]; then + if [[ -f "/etc/init.d/$MYSQL_INIT_SCRIPT" ]]; then echononl "Entferne existierendes Initskript" echo "" >> ${logdir}/main.log echo "## - Entferne existierendes Initskript" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log - echo "rm -f /etc/init.d/$_MYSQL_INITSCRIPT" >> ${logdir}/main.log - rm -f /etc/init.d/$_MYSQL_INITSCRIPT >> ${logdir}/main.log 2>&1 + echo "rm -f /etc/init.d/$MYSQL_INIT_SCRIPT" >> ${logdir}/main.log + rm -f /etc/init.d/$MYSQL_INIT_SCRIPT >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1162,8 +1173,8 @@ if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then echo "" >> ${logdir}/main.log echo "## - Entferne symbolische Links aus den Run Level Verzeichnissen" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log - echo "update-rc.d -f $_MYSQL_INITSCRIPT remove" >> ${logdir}/main.log - update-rc.d -f $_MYSQL_INITSCRIPT remove >> ${logdir}/main.log 2>&1 + echo "update-rc.d -f $MYSQL_INIT_SCRIPT remove" >> ${logdir}/main.log + update-rc.d -f $MYSQL_INIT_SCRIPT remove >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1172,29 +1183,29 @@ if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then fi fi -if [[ -n "$_SYSTEMD_SERVICE_FILE" ]]; then +if [[ -n "$MYSQLD_SERVICE_FILE" ]]; then - echononl "Deaktiviere Systemd Service \"$_SYSTEMD_SERVICE_FILE\".." + echononl "Deaktiviere Systemd Service \"$MYSQLD_SERVICE_FILE\".." echo "" >> ${logdir}/main.log - echo "## - Deaktiviere Systemd Service \"$_SYSTEMD_SERVICE_FILE\"" >> ${logdir}/main.log + echo "## - Deaktiviere Systemd Service \"$MYSQLD_SERVICE_FILE\"" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log - echo "systemctl disable \"$_SYSTEMD_SERVICE_FILE\"" >> ${logdir}/main.log + echo "systemctl disable \"$MYSQLD_SERVICE_FILE\"" >> ${logdir}/main.log - systemctl disable "$_SYSTEMD_SERVICE_FILE" >> ${logdir}/main.log 2>&1 + systemctl disable "$MYSQLD_SERVICE_FILE" >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed - fatal "Kann Systemd Service \"$_SYSTEMD_SERVICE_FILE\" nicht deaktivieren!" + fatal "Kann Systemd Service \"$MYSQLD_SERVICE_FILE\" nicht deaktivieren!" fi - echononl "Entferne Systemd Service \"etc/systemd/system/${_SYSTEMD_SERVICE_FILE}\".." + echononl "Entferne Systemd Service \"etc/systemd/system/${MYSQLD_SERVICE_FILE}\".." echo "" >> ${logdir}/main.log - echo "## - Enferne datei \"/etc/systemd/system/${_SYSTEMD_SERVICE_FILE}\"" >> ${logdir}/main.log + echo "## - Enferne datei \"/etc/systemd/system/${MYSQLD_SERVICE_FILE}\"" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log - echo "rm \"/etc/systemd/system/${_SYSTEMD_SERVICE_FILE}\"" >> ${logdir}/main.log + echo "rm \"/etc/systemd/system/${MYSQLD_SERVICE_FILE}\"" >> ${logdir}/main.log - rm "/etc/systemd/system/${_SYSTEMD_SERVICE_FILE}" >> ${logdir}/main.log 2>&1 + rm "/etc/systemd/system/${MYSQLD_SERVICE_FILE}" >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else