403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.163.252
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/packaging/rpm-sles/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/packaging/rpm-sles/mysql.init
#! /bin/bash
#
# Copyright (c) 2013, 2023, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is also distributed with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation.  The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have included with MySQL.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA


# MySQL Database start/stop script

# chkconfig:   - 64 36
# description: MySQL Database
# processname: mysqld
# config:      /etc/my.cnf
# pidfile:     /var/run/mysql/mysqld.pid

# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides:          mysql
# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs
# Default-Start:     3 5
# Default-Stop:      0 1 6
# Short-Description: MySQL Database
# Description:       MySQL Database
### END INIT INFO

# 
# https://en.opensuse.org/openSUSE:Packaging_init_scripts#Exit_Status_Codes
# 

[ -e /etc/rc.status ] && . /etc/rc.status

rc_reset

STARTTIMEOUT=180
STOPTIMEOUT=600
PROG=/usr/bin/mysqld_safe

[ -e /etc/sysconfig/mysql ] && . /etc/sysconfig/mysql

# Lock directory
lockfile=/var/lock/subsys/mysql

# Support for extra options passed to mysqld
command=$1 && shift
extra_opts="$@"

get_option () {
    local option=$1
    local default=$2
    shift 2
    ret=$(/usr/bin/my_print_defaults "$@" | sed -n "s/^--${option}=//p" | tail -n 1)
    [ -z $ret ] && ret=${default}
    echo $ret
}

datadir=$(get_option datadir "/var/lib/mysql" mysqld)
socket=$(get_option  socket "$datadir/mysql.sock" mysqld)
pidfile=$(get_option pid-file "/var/run/mysql/mysqld.pid" mysqld mysqld_safe)

install_validate_password_sql_file () {
    local initfile
    initfile="$(mktemp /tmp/install-validate-password-plugin.XXXXXX.sql)"
    chmod a+r "$initfile"
    echo "SET @@SESSION.SQL_LOG_BIN=0;" > "$initfile"
    echo "INSERT INTO mysql.plugin (name, dl) VALUES ('validate_password', 'validate_password.so');" >> $initfile
    echo $initfile
}

install_db () {
    # Note: something different than datadir=/var/lib/mysql requires 
    # SELinux policy changes (in enforcing mode)
    datadir=$(get_option datadir "/var/lib/mysql" mysqld)
    logfile=$(get_option log-error "/var/log/mysql/mysqld.log" mysqld mysqld_safe)

    # Restore log, dir, perms and SELinux contexts
    if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then
	install -d -m 0751 -omysql -gmysql "$datadir" || return 1
    fi

    if [ ! -e "$logfile" -a ! -h "$logfile" -a "x$(dirname "$logfile")" = "x/var/log/mysql" ]; then
	install /dev/null -omysql -gmysql "$logfile" || return 1
    fi
    if [ -x /usr/sbin/restorecon ]; then
        /usr/sbin/restorecon "$datadir"
        /usr/sbin/restorecon "$logfile"
    fi

    # If special mysql dir is in place, skip db install 
    [ -d "$datadir/mysql" ] && return 0

    # Create initial db and install validate password plugin
    initfile="$(install_validate_password_sql_file)"
    /usr/sbin/mysqld --initialize --datadir="$datadir" --user=mysql --init-file="$initfile"
    ret=$?
    rm -f "$initfile"

    # Generate certs if neded
    if [ -x /usr/bin/mysql_ssl_rsa_setup -a ! -e "${datadir}/server-key.pem" ] ; then
        /usr/bin/mysql_ssl_rsa_setup --datadir="$datadir" --uid=mysql >/dev/null 2>&1
    fi
    return $ret
}

# Wait for ping to answer to signal startup completed,
# might take a while in case of e.g. crash recovery
pinger () {
    mysqld_safe_pid=$1
    timer=$STARTTIMEOUT
    ret=0
    while [ $timer -gt 0 ]; do
        sleep 1
        mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 && break
	timer=$(expr $timer - 1)

	# Check if mysqld_safe is still alive, if not there is no hope
	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
	    ret=1
	    break
	fi
    done
    
    # Did we timeout?
    if [ $timer = 0 ]; then
	echo "MySQL Database start up timeout after ${STARTTIMEOUT}s"
	ret=1
    fi
    return $ret
}

# Check if mysqld is running
chk_running () {
    ret=0
    if [ -e "$pidfile" ]; then
	pid=$(cat "$pidfile") || ret=4
    else
	ret=7
    fi

    # Check if $pid is a mysqld pid
    if [ $ret -eq 0 ]; then
	[ -L "/proc/$pid/exe" ] || ret=7 
    fi

    if [ $ret -eq 0 ]; then
	exec=$(readlink "/proc/$pid/exe") || ret=7
    fi

    if [ $ret -eq 0 ]; then
	[ "x$(basename $exec)" = "xmysqld" ] || ret=7
    fi
    return $ret
}

start () {
    if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then
	echo -n "Starting service MySQL:"
	rc_reset ; rc_status -v ; rc_exit
    fi

    if ! install_db; then
	echo -n "MySQL Database could not initialize data directory:"
	rc_failed 6 ; rc_status -v ; rc_exit
    fi

    $PROG --basedir=/usr --datadir="$datadir" --pid-file="$pidfile" $extra_opts >/dev/null &
    if pinger $! ; then
	echo -n "Starting service MySQL:"
	touch $lockfile
	rc_reset
    else
	echo -n "Failed to start service MySQL:"
	rc_failed 3
    fi
    rc_status -v
}

stop () {
    chk_running
    ret=$?
    if [ $ret -ne 0 ]; then
	echo -n "Shutting down service MySQL:"
	rc_reset ; rc_status -v ; return 0
    fi

    # chk_running has verified this works
    pid=$(cat "$pidfile")

    # We use a signal to avoid having to know the root password
    # Send single kill command and then wait
    if su - mysql -s /bin/bash -c "kill $pid" >/dev/null 2>&1; then
	timer=$STOPTIMEOUT
	while [ $timer -gt 0 ]; do
            kill -0 $pid >/dev/null 2>&1 || break
            sleep 1
            timer=$(expr $timer - 1)
	done
    else
	echo -n "Shutting down service MySQL:"
	rc_failed 4 ; rc_status -v ; rc_exit
    fi
    
    if [ $timer -eq 0 ]; then
	echo -n "Failed to stop service MySQL:"
	rc_failed 1
    else
	rm -f $lockfile
	rm -f "$socketfile"
	echo -n "Shutting down service MySQL:"
	rc_reset
    fi
    rc_status -v
} 

restart () {
    stop
    start
}

reload () {
    ret=0
    if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then
	pid=$(cat "$pidfile")
	su - mysql -s /bin/bash -c "kill -HUP $pid" >/dev/null 2>&1
	echo -n "Reloading service MySQL:"
	rc_reset
    else
	echo -n "Reloading of service MySQL failed:"
        rc_failed 7
    fi
    rc_status -v
}

condrestart () {
    if chk_running && mysqladmin --no-defaults --enable-cleartext-plugin --socket="$socket" ping >/dev/null 2>&1 ; then
	restart
    fi
}

status () {
   echo -n "Checking for service MySQL:"
   checkproc mysqld
   rc_status -v
}  

case "$command" in
    start  ) start   ;;
    stop   ) stop    ;;
    restart) restart ;;
    status ) status  ;;
    condrestart        ) condrestart ;;
    reload|force-reload) reload ;;

    *) echo $"Usage: $0 {start|stop|restart|condrestart|status|reload|force-reload}"; exit 1 ;;
esac

rc_exit






Youez - 2016 - github.com/yon3zu
LinuXploit