RHEL’s MariaDB : how to do I add service script in Linux’s startup.
[ root @ my-host-name : ~ ] ps -ef | grep mysql
root 2158 1 0 02:36 ? 00:00:00 /bin/sh /opt/rh/rh-mariadb101/root/usr/bin/mysqld_safe –datadir=/var/opt/rh/rh-mariadb101/lib/mysql –socket=/var/lib/mysql/mysql.sock –pid-file=/var/run/rh-mariadb101-mariadb/mariadb.pid –basedir=/opt/rh/rh-mariadb101/root/usr –user=mysql
mysql 2332 2158 0 02:36 ? 00:00:00 /opt/rh/rh-mariadb101/root/usr/libexec/mysqld –basedir=/opt/rh/rh-mariadb101/root/usr –datadir=/var/opt/rh/rh-mariadb101/lib/mysql –plugin-dir=/opt/rh/rh-mariadb101/root/usr/lib64/mysql/plugin/ –user=mysql –log-error=/var/opt/rh/rh-mariadb101/log/mariadb/mariadb.log –pid-file=/var/run/rh-mariadb101-mariadb/mariadb.pid –socket=/var/lib/mysql/mysql.sock
root 4072 4009 0 02:42 pts/2 00:00:00 grep mysql
[ root @ my-host-name : ~ ]
[ root @ my-host-name : ~ ]
[ root @ my-host-name : ~ ] file /var/lock/subsys/rh-mariadb101-mariadb
/var/lock/subsys/rh-mariadb101-mariadb: empty
[ root @ my-host-name : ~ ]
[ root @ my-host-name : ~ ] chkconfig rh-mariadb101-mariadb on
[ root @ my-host-name : ~ ]
[ root @ my-host-name : ~ ] shutdown -r now
Broadcast message from root@my-host-name
(/dev/pts/3) at 2:34 …
The system is going down for reboot NOW!
Broadcast message from root@my-host-name
(/dev/pts/3) at 2:34 …
The system is going down for reboot NOW!
[ root @ my-host-name : ~ ]
Last login: Wed Jul 27 2016 02:40:50 -0400 from GCOTDVMSW783314.nam.nsroot.net
$
$
$
[ root @ my-host-name : ~ ] ps -ef | grep mysql
root 2158 1 0 02:36 ? 00:00:00 /bin/sh /opt/rh/rh-mariadb101/root/usr/bin/mysqld_safe –datadir=/var/opt/rh/rh-mariadb101/lib/mysql –socket=/var/lib/mysql/mysql.sock –pid-file=/var/run/rh-mariadb101-mariadb/mariadb.pid –basedir=/opt/rh/rh-mariadb101/root/usr –user=mysql
mysql 2332 2158 0 02:36 ? 00:00:00 /opt/rh/rh-mariadb101/root/usr/libexec/mysqld –basedir=/opt/rh/rh-mariadb101/root/usr –datadir=/var/opt/rh/rh-mariadb101/lib/mysql –plugin-dir=/opt/rh/rh-mariadb101/root/usr/lib64/mysql/plugin/ –user=mysql –log-error=/var/opt/rh/rh-mariadb101/log/mariadb/mariadb.log –pid-file=/var/run/rh-mariadb101-mariadb/mariadb.pid –socket=/var/lib/mysql/mysql.sock
root 4072 4009 0 02:42 pts/2 00:00:00 grep mysql
[ root @ my-host-name : ~ ]
[ root @ dbversity : ~ ] cat /etc/init.d/rh-mariadb101-mariadb
#!/bin/sh
#
# rh-mariadb101-mariadb This shell script takes care of starting and stopping
# the MySQL subsystem (mysqld).
#
# chkconfig: – 64 36
# description: MySQL database server.
# processname: mysqld
# config: /etc/opt/rh/rh-mariadb101/my.cnf
# pidfile: /var/run/rh-mariadb101-mariadb/mariadb.pid
### BEGIN INIT INFO
# Provides: mysqld
# Required-Start: $local_fs $remote_fs $network $named $syslog $time
# Required-Stop: $local_fs $remote_fs $network $named $syslog $time
# Short-Description: start and stop MySQL server
# Description: MySQL database server
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
exec=”/opt/rh/rh-mariadb101/root/usr/bin/mysqld_safe”
prog=”rh-mariadb101-mariadb”
# Set timeouts here so they can be overridden from /etc/opt/rh/rh-mariadb101/sysconfig/mariadb
STARTTIMEOUT=300
STOPTIMEOUT=60
# User and group the daemon will run under
MYUSER=mysql
MYGROUP=mysql
# Edit the following file in order to re-write some of the environment
# variables defined above, like $STARTTIMEOUT, $STOPTIMEOUT, $exec
[ -e /etc/opt/rh/rh-mariadb101/sysconfig/mariadb ] && . /etc/opt/rh/rh-mariadb101/sysconfig/mariadb
lockfile=/var/lock/subsys/$prog
# get options from my.cnf
source “/opt/rh/rh-mariadb101/root/usr/libexec/mysql-scripts-common”
start(){
[ -x $exec ] || exit 5
# check permissions
if ! touch $(dirname $socketfile) &>/dev/null ; then
action $”Starting $prog: ” /bin/false
return 4
fi
# check to see if it’s already running
MYSQLDRUNNING=0
if [ -f “$pidfile” ]; then
MYSQLPID=`cat “$pidfile” 2>/dev/null`
if [ -n “$MYSQLPID” ] && [ -d “/proc/$MYSQLPID” ] ; then
MYSQLDRUNNING=1
fi
fi
RESPONSE=`/opt/rh/rh-mariadb101/root/usr/bin/mysqladmin –no-defaults –socket=”$socketfile” –user=UNKNOWN_MYSQL_USER ping 2>&1`
if [ $MYSQLDRUNNING = 1 ] && [ $? = 0 ]; then
# already running, do nothing
action $”Starting $prog: ” /bin/true
ret=0
elif [ $MYSQLDRUNNING = 1 ] && echo “$RESPONSE” | grep -q “Access denied for user”
then
# already running, do nothing
action $”Starting $prog: ” /bin/true
ret=0
else
/opt/rh/rh-mariadb101/root/usr/libexec/mysql-prepare-db-dir $MYUSER $MYGROUP || return 4
/opt/rh/rh-mariadb101/root/usr/libexec/mysql-check-socket || return 1
# Pass all the options determined above, to ensure consistent behavior.
# In many cases mysqld_safe would arrive at the same conclusions anyway
# but we need to be sure. (An exception is that we don’t force the
# log-error setting, since this script doesn’t really depend on that,
# and some users might prefer to configure logging to syslog.)
# Note: set –basedir to prevent probes that might trigger SELinux
# alarms, per bug #547485
$exec –datadir=”$datadir” –socket=”$socketfile” \
–pid-file=”$pidfile” $_WSREP_NEW_CLUSTER \
–basedir=/opt/rh/rh-mariadb101/root/usr –user=$MYUSER >/dev/null 2>&1 &
safe_pid=$!
# Wait until the daemon is up
/opt/rh/rh-mariadb101/root/usr/libexec/mysql-wait-ready “$safe_pid”
ret=$?
if [ $ret -eq 0 ]; then
action $”Starting $prog: ” /bin/true
chmod o+r $pidfile >/dev/null 2>&1
touch $lockfile
else
action $”Starting $prog: ” /bin/false
fi
fi
return $ret
}
stop(){
if [ ! -f “$pidfile” ]; then
# not running; per LSB standards this is “ok”
action $”Stopping $prog: ” /bin/true
return 0
fi
MYSQLPID=`cat “$pidfile” 2>/dev/null`
if [ -n “$MYSQLPID” ]; then
if ! [ -d “/proc/$MYSQLPID” ] ; then
# process doesn’t run anymore
action $”Stopping $prog: ” /bin/true
return 0
fi
/bin/kill “$MYSQLPID” >/dev/null 2>&1
ret=$?
if [ $ret -eq 0 ]; then
TIMEOUT=”$STOPTIMEOUT”
while [ $TIMEOUT -gt 0 ]; do
/bin/kill -0 “$MYSQLPID” >/dev/null 2>&1 || break
sleep 1
let TIMEOUT=${TIMEOUT}-1
done
if [ $TIMEOUT -eq 0 ]; then
echo “Timeout error occurred trying to stop MySQL Daemon.”
ret=1
action $”Stopping $prog: ” /bin/false
else
rm -f $lockfile
rm -f “$socketfile”
action $”Stopping $prog: ” /bin/true
fi
else
# kill command failed, probably insufficient permissions
action $”Stopping $prog: ” /bin/false
ret=4
fi
else
# failed to read pidfile, probably insufficient permissions
action $”Stopping $prog: ” /bin/false
ret=4
fi
return $ret
}
restart(){
stop
start
}
condrestart(){
[ -e $lockfile ] && restart || :
}
# We have to re-enable SCL environment, because /sbin/service
# clears almost all environment variables.
# Since X_SCLS is cleared as well, we lose information about other
# collections enabled.
source /opt/rh/rh-mariadb101/service-environment
source scl_source enable $RH_MARIADB101_SCLS_ENABLED
# we want start daemon only inside “scl enable” invocation
if ! scl_enabled rh-mariadb101 ; then
echo “Collection rh-mariadb101 has to be listed in /opt/rh/rh-mariadb101/service-environment”
exit 1
fi
# See how we were called.
case “$1” in
start)
start
;;
stop)
stop
;;
status)
status -p “$pidfile” $prog
;;
restart)
restart
;;
condrestart|try-restart)
condrestart
;;
reload)
exit 3
;;
force-reload)
restart
;;
*)
echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}”
exit 2
esac
exit $?
[ root @ dbversity : ~ ]