preinst is in percona-xtradb-cluster-server-5.7 5.7.20-29.24-0ubuntu2.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | #!/bin/bash
set -e
if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then
set -v -x
DEBIAN_SCRIPT_TRACE=1
fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }
get_pcount() {
PSCOUNT=$(ps -ef | grep "/usr/sbin/mysqld" | wc -l)
echo "${PSCOUNT}"
}
server_stop() {
bootstrapped=$(ps wwaux | grep mysql | grep wsrep-new-cluster | wc -l)
if [ $bootstrapped != 0 ]; then
echo 1 >/tmp/bootstrapped
fi
PSCOUNT=$(get_pcount)
COUNT=0
while :; do
COUNT=$((COUNT + 1))
echo -n .
if [ "${PSCOUNT}" -eq 1 ]; then
echo
break
fi
if [ "${COUNT}" -gt 15 ]; then
if [ ! -x /etc/init.d/mysql ]; then return; fi
set +e
cmd="/etc/init.d/mysql bootstrap-stop"
$cmd
errno=$?
set -e
# 0=ok, 100=no init script (fresh install)
if [ "$errno" != 0 ]; then
set +e
cmd="service mysql stop"
$cmd
errno=$?
set -e
if [ "$errno" != 0 ]; then
return 1
else
return 0
fi
else
return 0
fi
fi
PSCOUNT=$(get_pcount)
sleep 1
done
return 0
}
case "$1" in
install)
if [ -z "$2" ]; then
if [ -x "/etc/init.d/mysql" ]; then
invoke-rc.d mysql stop || exit $?
server_stop
fi
MYSQLDATA=/var/lib/percona-xtradb-cluster
MYSQLFILES=/var/lib/mysql-files
MYSQLLOG=/var/log/mysql
MYSQLRUN=/var/run/mysqld
MYSQLKEYRING=/var/lib/mysql-keyring
MYSQLLOGFILE=/var/log/mysqld.log
if ! getent group mysql >/dev/null; then
addgroup --system mysql >/dev/null
fi
if ! getent passwd mysql >/dev/null; then
adduser --ingroup mysql --system --disabled-login \
--no-create-home --home ${MYSQLDATA} \
--shell /bin/false --gecos "MySQL Server" \
mysql >/dev/null
fi
if [ ! -d ${MYSQLDATA} -a ! -L ${MYSQLDATA} ]; then
mkdir ${MYSQLDATA}
chown mysql:mysql ${MYSQLDATA}
chmod 750 ${MYSQLDATA}
fi
if [ ! -d ${MYSQLFILES} -a ! -L ${MYSQLFILES} ]; then
mkdir ${MYSQLFILES}
chown mysql:mysql ${MYSQLFILES}
chmod 770 ${MYSQLFILES}
fi
if [ ! -d ${MYSQLKEYRING} -a ! -L ${MYSQLKEYRING} ]; then
mkdir ${MYSQLKEYRING}
chown mysql:mysql ${MYSQLKEYRING}
chmod 750 ${MYSQLKEYRING}
fi
if [ ! -d ${MYSQLLOG} -a ! -L ${MYSQLLOG} ]; then
mkdir ${MYSQLLOG}
chown mysql:adm ${MYSQLLOG}
chmod 750 ${MYSQLLOG}
touch ${MYSQLLOG}/error.log
chmod 640 ${MYSQLLOG}/error.log
chown mysql:adm ${MYSQLLOG}/error.log
fi
if [ ! -e ${MYSQLLOGFILE} ]; then
touch ${MYSQLLOGFILE}
chmod 640 ${MYSQLLOGFILE}
chown mysql:adm ${MYSQLLOGFILE}
fi
if [ ! -d ${MYSQLRUN} -a ! -L ${MYSQLRUN} ]; then
mkdir ${MYSQLRUN}
chown mysql:mysql ${MYSQLRUN}
chmod 755 ${MYSQLRUN}
fi
else
server_stop
fi
;;
upgrade)
server_stop
;;
abort-upgrade) ;;
*)
exit 1
;;
esac
exit 0
|