AlkantarClanX12
Current Path : /proc/thread-self/root/usr/local/lsws/admin/misc/ |
Current File : //proc/thread-self/root/usr/local/lsws/admin/misc/cp_switch_ws.sh |
#!/bin/bash ############################################################################## # Switch between Apache and LiteSpeed Web Server under control panel environment # # @author LiteSpeed Technologies, Inc. (https://www.litespeedtech.com) # @copyright (c) 2016-2023 ############################################################################## check_errs() { if [ "$1" -ne 0 ] ; then echo "[ERROR] ${2}" exit "$1" fi } display_usage() { cat <<EOF cp_switch_ws.sh - Switch between Apache and LiteSpeed under control panel environments. Currently supported control panels are cPanel, Plesk, DirectAdmin, and CentOS Web Panel. CustomBuild 2.0 is required to be installed prior for DirectAdmin detection. Usage: cp_switch_ws.sh apache|lsws Param: targeted web server. Fixed value either "apache" or "lsws" EOF exit 1 } detect_control_panel() { # detect cPanel if [ -d "/usr/local/cpanel/whostmgr" ] ; then CP="WHM" cp_init_var echo "Detected cPanel WHM Environment" # detect Plesk elif [ -e "/opt/psa/version" ] || [ -e "/usr/local/psa/version" ] ; then CP="PSA" cp_init_var echo "Detected Plesk Environment" # detect DirectAdmin elif [ -d "/usr/local/directadmin" ] ; then CP="DA" DA_DIR="/usr/local/directadmin/custombuild" echo "Detected DirectAdmin Environment" # detect CentOS Web Panel elif [ -d "/usr/local/cwpsrv" ] ; then CP="CWP" echo "Detected CentOS Web Panel Environment" else check_errs 1 "Cannot detect control panel environment. Only cPanel WHM, Plesk, DirectAdmin are checked for now." fi } cp_SetRunOnBoot() { local chkconfigPath chkconfigPath=$(which chkconfig) $chkconfigPath lsws off $chkconfigPath httpd on return 0 } cp_msg_exit() { echo "$2" exit "${1}" } cp_init_var() { OS=$(uname -s) if [ "x$OS" = "xFreeBSD" ] || [ "x$OS" = "xDarwin" ] ; then PS_CMD="ps -ax" else PS_CMD="ps -ef" fi if [ "x$OS" = "xFreeBSD" ] ; then LSWS_CTLCMD="/usr/local/etc/rc.d/lsws.sh" AP_CTLCMD="/usr/local/etc/rc.d/httpd" else LSWS_CTLCMD="/sbin/service lsws" AP_CTLCMD="/sbin/service httpd" fi LSWS_PIDFILE="/tmp/lshttpd/lshttpd.pid" CONF="${LSWSHOME}/conf/httpd_config.xml" AP_PROC="httpd" LSWS_SWITCH_FLAG="${LSWSHOME}/admin/tmp/.switched2lsws" if [ "$CP" = "PSA" ] && [ -e "/etc/debian_version" ] ; then LSWS_CTLCMD="/usr/sbin/service lsws" AP_CTLCMD="/usr/sbin/service apache2" AP_PROC="apache2" if ! . "/etc/apache2/envvars" 2>/dev/null; then . "/etc/apache2/envvars" fi AP_PIDFILE="$APACHE_PID_FILE" fi } cp_stop_lsws() { if [ "$CP" = "WHM" ] ; then pkill wswatch.sh 2>/dev/null fi $LSWS_CTLCMD stop $AP_CTLCMD stop 1>/dev/null 2>&1 RETRY=30 LSPID=1 while [ $RETRY -gt 0 ] && [ $LSPID -ne 0 ] do ((RETRY--)) sleep 1 cp_detect_lsws_pid done if [ $LSPID -eq 0 ] ; then pkill -9 lshttpd pkill -9 litespeed echo "LiteSpeed Stopped." else echo "LiteSpeed is still running. Fail to stop within 30 secs." echo "Will use pkill command to stop" pkill -9 lshttpd pkill -9 litespeed sleep 1 cp_detect_lsws_pid if [ $LSPID -eq 0 ] ; then echo "LiteSpeed Stopped." else echo "LiteSpeed is still running. Fail to stop using kill command." fi fi } cp_detect_lsws_pid() { LSPID=0 if [ -f "$LSWS_PIDFILE" ] ; then FPID=$(cat "$LSWS_PIDFILE") if [ "x$FPID" != "x" ] ; then PL=$($PS_CMD | grep -w 'lshttpd\|litespeed' | grep -v grep | grep -w "$FPID") if [ "x$PL" != "x" ] ; then LSPID=$FPID fi fi fi } # # start LiteSpeed # cp_start_fake_apache() { $AP_CTLCMD start 2>&1 RETRY=30 LSPID=0 while [ $RETRY -gt 0 ] && [ $LSPID -eq 0 ] do ((RETRY--)) sleep 1 cp_detect_lsws_pid done } remove_bak_bak() { if [ -f "$1$2" ]; then mv "$1$2" "$1$2_restore_done" fi } cpanel_apache_wrapper_helper() { RESTORE=$1 NEED_PROTECT=$(/usr/local/cpanel/3rdparty/bin/perl -MCpanel::Config::Httpd::Perms -e'print Cpanel::Config::Httpd::Perms::webserver_runs_as_user();') if [ "$RESTORE" -eq 1 ] ; then # restore Apache binary Files if [ -f "/usr/local/apache/bin/${AP_PROC}_ls_bak" ] ; then mv -f "/usr/local/apache/bin/${AP_PROC}_ls_bak" "/usr/local/apache/bin/${AP_PROC}" elif [ -f "/usr/local/apache/bin/${AP_PROC}_ls_bak_bak" ] ; then cp -f "/usr/local/apache/bin/${AP_PROC}_ls_bak_bak" "/usr/local/apache/bin/${AP_PROC}" fi remove_bak_bak "/usr/local/apache/bin/${AP_PROC}" "_ls_bak_bak" if [ -f "/usr/sbin/${AP_PROC}_ls_bak" ] ; then mv -f "/usr/sbin/${AP_PROC}_ls_bak" "/usr/sbin/${AP_PROC}" elif [ -f "/usr/sbin/${AP_PROC}_ls_bak_bak" ] ; then cp -f "/usr/sbin/${AP_PROC}_ls_bak_bak" "/usr/sbin/${AP_PROC}" fi remove_bak_bak "/usr/sbin/${AP_PROC}" "_ls_bak_bak" if [ -f "/scripts/restartsrv_httpd_ls_bak" ] ; then mv -f "/scripts/restartsrv_httpd_ls_bak" "/scripts/restartsrv_httpd" elif [ -f "/scripts/restartsrv_httpd_ls_bak_bak" ] ; then cp -f "/scripts/restartsrv_httpd_ls_bak_bak" "/scripts/restartsrv_httpd" fi remove_bak_bak "/scripts/restartsrv_httpd" "_ls_bak_bak" if [ "$NEED_PROTECT" -eq 1 ] ; then /scripts/enablefileprotect echo "Added fileprotect for Apache" fi if [ ! -f "/etc/cpanel/ea4/paths.conf" ] || ! grep -q '[^[:space:]]' /etc/cpanel/ea4/paths.conf ; then if [ -f '/etc/cpanel/ea4/paths.conf_ls_bak' ]; then mv '/etc/cpanel/ea4/paths.conf_ls_bak' '/etc/cpanel/ea4/paths.conf' fi fi if [ -f "/etc/cpanel/ea4/paths.conf" ]; then sed -i -e 's#/usr/local/lsws/bin/lswsctrl#/usr/sbin/apachectl#' /etc/cpanel/ea4/paths.conf fi # restore rc file if [ "$SYSTEMDDIR" != "" ]; then if [ -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" ] ; then mv -f "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" "${SYSTEMDDIR}/${AP_PROC}.service" elif [ -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak_bak" ] ; then cp -f "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak_bak" "${SYSTEMDDIR}/${AP_PROC}.service" fi remove_bak_bak "${SYSTEMDDIR}/${AP_PROC}.service" ".ls_bak_bak" systemctl daemon-reload fi if [ "$INIT_DIR" != "" ]; then if [ -e "${INIT_DIR}/${AP_PROC}.ls_bak" ] ; then mv -f "${INIT_DIR}/${AP_PROC}.ls_bak" "${INIT_DIR}/${AP_PROC}" elif [ -e "${INIT_DIR}/${AP_PROC}.ls_bak_bak" ] ; then cp -f "${INIT_DIR}/${AP_PROC}.ls_bak_bak" "${INIT_DIR}/${AP_PROC}" fi remove_bak_bak "${INIT_DIR}/${AP_PROC}" ".ls_bak_bak" fi if [ -f "$LSWS_SWITCH_FLAG" ] ; then /bin/rm -f "$LSWS_SWITCH_FLAG" fi else if [ "$NEED_PROTECT" -eq 1 ] ; then /scripts/disablefileprotect echo "fileprotect removed, not needed by LiteSpeed" fi if [ ! -f "/etc/cpanel/ea4/paths.conf" ] || ! grep -q '[^[:space:]]' /etc/cpanel/ea4/paths.conf ; then if [ -f '/etc/cpanel/ea4/paths.conf_ls_bak' ]; then mv '/etc/cpanel/ea4/paths.conf_ls_bak' '/etc/cpanel/ea4/paths.conf' fi fi if [ -f "/etc/cpanel/ea4/paths.conf" ]; then sed -i -e 's#/usr/sbin/apachectl#/usr/local/lsws/bin/lswsctrl#' /etc/cpanel/ea4/paths.conf fi # add rc wrapper if [ "$SYSTEMDDIR" != "" ] ; then # copy the correct file again to avoid wrong data "${LSWSHOME}/admin/misc/rc-inst.sh" if [ ! -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" ] ; then mv -f "${SYSTEMDDIR}/${AP_PROC}.service" "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" fi ln -sf "${SYSTEMDDIR}/lshttpd.service" "${SYSTEMDDIR}/${AP_PROC}.service" systemctl daemon-reload fi if [ "$INIT_DIR" != "" ] ; then if [ ! -e "${INIT_DIR}/${AP_PROC}.ls_bak" ] ; then mv -f "${INIT_DIR}/${AP_PROC}" "${INIT_DIR}/${AP_PROC}.ls_bak" fi ln -sf ./lsws "${INIT_DIR}/${AP_PROC}" fi # set flag touch "$LSWS_SWITCH_FLAG" fi } plesk_apache_wrapper_helper() { RESTORE=$1 if [ "$RESTORE" -eq 1 ] ; then # restore Apache binary Files if [ -f "/usr/sbin/${AP_PROC}_ls_bak" ] ; then mv -f "/usr/sbin/${AP_PROC}_ls_bak" "/usr/sbin/${AP_PROC}" elif [ -f "/usr/sbin/${AP_PROC}_ls_bak_bak" ] ; then cp -f "/usr/sbin/${AP_PROC}_ls_bak_bak" "/usr/sbin/${AP_PROC}" fi remove_bak_bak "/usr/sbin/${AP_PROC}" "_ls_bak_bak" # restore rc file if [ "$SYSTEMDDIR" != "" ]; then if [ -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" ] ; then mv -f "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" "${SYSTEMDDIR}/${AP_PROC}.service" elif [ -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak_bak" ] ; then cp -f "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak_bak" "${SYSTEMDDIR}/${AP_PROC}.service" fi remove_bak_bak "${SYSTEMDDIR}/${AP_PROC}.service" ".ls_bak_bak" if [ -d "${SYSTEMDDIR}/lshttpd.service.d" ]; then mv -f "${SYSTEMDDIR}/lshttpd.service.d" "${SYSTEMDDIR}/${AP_PROC}.service.d" fi if [ -d "${SYSTEMDDIR}/${AP_PROC}.service.d.ls_bak" ]; then mv -f "${SYSTEMDDIR}/${AP_PROC}.service.d.ls_bak" "${SYSTEMDDIR}/${AP_PROC}.service.d" fi if [ -d "/etc/systemd/system/${AP_PROC}.service.d.ls_bak" ]; then mv -f "/etc/systemd/system/${AP_PROC}.service.d.ls_bak" "/etc/systemd/system/${AP_PROC}.service.d" fi systemctl daemon-reload systemctl disable lshttpd systemctl enable ${AP_PROC} fi if [ "$INIT_DIR" != "" ] ; then if [ -e "${INIT_DIR}/${AP_PROC}.ls_bak" ] ; then mv -f "${INIT_DIR}/${AP_PROC}.ls_bak" "${INIT_DIR}/${AP_PROC}" elif [ -e "${INIT_DIR}/${AP_PROC}.ls_bak_bak" ] ; then cp -f "${INIT_DIR}/${AP_PROC}.ls_bak_bak" "${INIT_DIR}/${AP_PROC}" fi remove_bak_bak "${INIT_DIR}/${AP_PROC}" ".ls_bak_bak" if [ "$SYSTEMDDIR" != "" ] ; then systemctl daemon-reload fi fi if [ -f "$LSWS_SWITCH_FLAG" ] ; then /bin/rm -f "$LSWS_SWITCH_FLAG" fi else # add rc wrapper if [ "$SYSTEMDDIR" != "" ] ; then if [ ! -e "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" ] ; then systemctl disable ${AP_PROC} systemctl enable lshttpd mv -f "${SYSTEMDDIR}/${AP_PROC}.service" "${SYSTEMDDIR}/${AP_PROC}.service.ls_bak" fi ln -sf "${SYSTEMDDIR}/lshttpd.service" "${SYSTEMDDIR}/${AP_PROC}.service" if [ -d "${SYSTEMDDIR}/${AP_PROC}.service.d" ]; then mv -f "${SYSTEMDDIR}/${AP_PROC}.service.d" "${SYSTEMDDIR}/${AP_PROC}.service.d.ls_bak" fi if [ -d "/etc/systemd/system/${AP_PROC}.service.d" ]; then mv -f "/etc/systemd/system/${AP_PROC}.service.d" "/etc/systemd/system/${AP_PROC}.service.d.ls_bak" fi systemctl daemon-reload fi if [ "$INIT_DIR" != "" ] ; then if [ ! -e "${INIT_DIR}/${AP_PROC}.ls_bak" ] ; then mv -f "${INIT_DIR}/${AP_PROC}" "${INIT_DIR}/${AP_PROC}.ls_bak" fi cp "${INIT_DIR}/lsws" "${INIT_DIR}/${AP_PROC}" #ln -sf ./lsws "${INIT_DIR}/${AP_PROC}" if [ "$SYSTEMDDIR" != "" ] ; then systemctl daemon-reload fi fi # set flag touch "$LSWS_SWITCH_FLAG" fi } cp_apache_wrapper() { RESTORE=$1 INIT_DIR="" for path in "/etc/init.d" "/etc/rc.d/init.d" do if [ "$INIT_DIR" = "" ] \ && { [ -e "${path}/${AP_PROC}" ] || [ -e "${path}/${AP_PROC}.ls_bak" ] ;} then INIT_DIR="$path" fi done # use systemd if possible, need to use same method as apache SYSTEMDDIR="" for path in "/usr/lib/systemd/system" "/lib/systemd/system" "/etc/systemd/system" do if [ "$SYSTEMDDIR" = "" ] \ && [ -d "$path" ] \ && [ -e "${path}/${AP_PROC}.service" ] ; then SYSTEMDDIR="$path" fi done if [ "$CP" = "WHM" ] ; then cpanel_apache_wrapper_helper "$RESTORE" elif [ "$CP" = "PSA" ] ; then plesk_apache_wrapper_helper "$RESTORE" fi } cp_detect_ap_pid() { APPID=0 FPID=$($PS_CMD | grep -w "${AP_PROC} \|${AP_PROC}$\|^${AP_PROC}$" \ | grep -v "lscgid\|litespeed\|lshttpd\|grep\|/usr/bin/logger" | grep -w "root" \ | awk '{print $2}') if [ "x$FPID" != "x" ] ; then APPID=$FPID fi } cp_stop_apache() { $AP_CTLCMD stop RETRY=30 APPID=1 while [ $RETRY -gt 0 ] && [ $APPID -ne 0 ] do ((RETRY--)) sleep 1 cp_detect_ap_pid done if [ $APPID -eq 0 ] ; then echo "Apache Stopped." else echo "Apache is still running. Fail to stop within 30 secs." echo "Will use pkill command to stop" pkill -9 $AP_PROC sleep 1 cp_detect_ap_pid if [ $APPID -eq 0 ] ; then echo "Apache Stopped." else echo "Apache is still running. Fail to stop using kill command." fi fi } cp_change_port_offset() { PORT_OFFSET=$1 if [ ! -f "$CONF" ] ; then check_errs 1 "${0}: invalid conf file directory!" fi /bin/cp -f "$CONF" "${CONF}.orig" sed -e "s/<apachePortOffset>.*<\/apachePortOffset>/<apachePortOffset>${PORT_OFFSET}<\/apachePortOffset>/" "${CONF}.orig" > "$CONF" check_errs $? "${0}: sed command error, please try to modify apache port offset manually from config file ${CONF}" /bin/rm -f "${CONF}.orig" } cp_SwitchToLiteSpeed() { cp_change_port_offset 0 cp_stop_apache if [ "$CP" = "WHM" ] ; then #sleep 8 pkill -9 httpd elif [ "$CP" = "PSA" ] ; then cp_detect_lsws_pid fi cp_apache_wrapper 0 if [ "$CP" = "WHM" ] ; then /usr/local/cpanel/bin/whmapi1 configureservice service=httpd enabled=1 monitored=1 fi cp_start_fake_apache if [ $LSPID -gt 0 ] ; then if [ "$CP" = "WHM" ] ; then pkill wswatch.sh 2>/dev/null cd /usr/local/lsws/logs nohup ../bin/wswatch.sh </dev/null >/dev/null 2>&1 & fi cp_msg_exit 0 "LiteSpeed started successfully." fi echo "LiteSpeed is not up within 30 secs, try again by removing /tmp/lshttpd/." pkill -9 lshttpd pkill -9 litespeed /bin/rm -rf "/tmp/lshttpd" cp_start_fake_apache # wrapper needs to run after lsws start if [ $LSPID -gt 0 ] ; then if [ "$CP" = "WHM" ] ; then pkill wswatch.sh 2>/dev/null cd /usr/local/lsws/logs nohup ../bin/wswatch.sh 2>/dev/null & fi cp_msg_exit 0 "LiteSpeed started successfully." else cp_apache_wrapper 1 check_errs 1 "LiteSpeed is not up within 60 secs, please check the error log and try again." fi } cp_SwitchToApache() { if [ "$CP" = "WHM" ] ; then pkill wswatch.sh 2>/dev/null fi cp_detect_lsws_pid if [ $LSPID -gt 0 ] ; then echo "LiteSpeed is running, stop it first." cp_stop_lsws if [ $LSPID -gt 0 ] ; then check_errs 1 "Abort." fi fi cp_detect_ap_pid if [ $APPID -gt 0 ] ; then if [ ! -f "$LSWS_SWITCH_FLAG" ] ; then return fi # if running, stop first cp_stop_apache fi # restore Apache Files, wrapper needs to run before Apache start cp_apache_wrapper 1 # wait 1 sec before start apache sleep 1 if [ "$CP" = "WHM" ] ; then /usr/local/cpanel/bin/whmapi1 configureservice service=httpd enabled=1 monitored=1 # # start Apache # # does not change the memory limits, does not work well. # $AP_CTLCMD start # # call a cPanel script /scripts/restartsrv_httpd elif [ "$CP" = "PSA" ] ; then $AP_CTLCMD start 2>&1 fi RETRY=30 APPID=0 while [ $RETRY -gt 0 ] && [ $APPID -eq 0 ] do cp_detect_ap_pid ((RETRY--)) sleep 1 done if [ $APPID -ne 0 ] ; then cp_msg_exit 0 "Apache started successfully." else check_errs 1 "Apache is not up within 30 secs. Please check the log file." fi } switch_cp() { if [ "x$1" = "xapache" ] ; then cp_SwitchToApache cp_SetRunOnBoot elif [ "x$1" = "xlsws" ] ; then cp_SwitchToLiteSpeed cp_SetRunOnBoot fi } switch_da() { cd ${DA_DIR} pmod1=$(grep "php1_mode" /usr/local/directadmin/custombuild/options.conf | cut -d = -f 2 | xargs) pmod2=$(grep "php2_mode" /usr/local/directadmin/custombuild/options.conf | cut -d = -f 2 | xargs) pmod3=$(grep "php3_mode" /usr/local/directadmin/custombuild/options.conf | cut -d = -f 2 | xargs) pmod4=$(grep "php4_mode" /usr/local/directadmin/custombuild/options.conf | cut -d = -f 2 | xargs) if [ "x$1" = "xapache" ] ; then pkill wswatch.sh ./build set webserver apache OS_NAME=$(awk '{print $1}' < /etc/redhat-release) if [ "${OS_NAME}" == 'CloudLinux' ] ; then ./build set php1_mode lsphp ./build set php2_mode lsphp ./build set php3_mode lsphp ./build set php4_mode lsphp else ./build set php1_mode php-fpm ./build set php2_mode php-fpm ./build set php3_mode php-fpm ./build set php4_mode php-fpm fi ./build set mod_ruid2 no ./build apache else ./build set webserver litespeed if [ "x$pmod1" != "xlsphp" ] ; then ./build set php1_mode lsphp if [ "x$pmod2" != "xlsphp" ] ; then ./build set php2_mode lsphp fi if [ "x$pmod3" != "xlsphp" ] ; then ./build set php3_mode lsphp fi if [ "x$pmod4" != "xlsphp" ] ; then ./build set php4_mode lsphp fi fi ./build litespeed fi } switch_cwp() { if [ "x$1" = "xapache" ] ; then pkill wswatch.sh stop_running_ws echo "Starting Apache..." if [ -e "/usr/local/apache/bin/httpd_ls_bak" ] ; then mv /usr/local/apache/bin/httpd_ls_bak /usr/local/apache/bin/httpd fi service_manager "start" "httpd" echo "Apache has been started successfully." elif [ "x$1" = "xlsws" ] ; then stop_running_ws echo "Starting LiteSpeed Enterprise..." service_manager "start" "lsws" echo "LiteSpeed Enterprise has been started successfully." fi } service_manager() { if [ -d "/etc/systemd" ] ; then systemctl "$1" "$2" > /dev/null 2>&1 else service "$2" "$1" > /dev/null 2>&1 fi } stop_running_ws() { local AP_PIDFILE=/usr/local/apache/logs/httpd.pid local LSWS_PIDFILE=/tmp/lshttpd/lshttpd.pid if [ -e "$AP_PIDFILE" ] ; then local AP_PID AP_PID=$(cat $AP_PIDFILE) fi if [ -e "$LSWS_PIDFILE" ] ; then local LSWS_PID LSWS_PID=$(cat $LSWS_PIDFILE) fi if [ -e "$LSWS_PIDFILE" ] && [ "$(ps -ef | grep -w 'lshttpd\|litespeed' | grep -v grep | grep -w "$LSWS_PID")" != "" ] || [ "$(ps -ef | grep -w 'lshttpd\|litespeed' | grep -v grep)" != "" ] ; then echo "Stopping LiteSpeed Enterprise..." service_manager "stop" "lsws" sleep 1 RETRY=30 CHECK=$(ps -ef | grep -w 'lshttpd\|litespeed' | grep -v grep) while [ "$RETRY" -gt 0 ] && [ "$CHECK" != "" ] ; do RETRY=$((RETRY-1)) sleep 1 CHECK=$(ps -ef | grep -w 'lshttpd\|litespeed' | grep -v grep) done pkill -9 lsphp > /dev/null 2>&1 if [ "$CHECK" != "" ] ; then pkill -9 litespeed > /dev/null 2>&1 pkill -9 lshttpd > /dev/null 2>&1 pkill -9 lscgid > /dev/null 2>&1 sleep 1 fi if [ "$(ps -ef | grep -w 'lshttpd\|litespeed' | grep -v grep)" != "" ] ; then echo "LiteSpeed Enterprise could not be stopped." exit 1 else echo "LiteSpeed Enterprise has been stopped successfully." fi fi if [ -e "$AP_PIDFILE" ] && [ "$(ps -ef | grep -w "$AP_PID" | grep httpd | grep -v grep | grep -v lscgid)" != "" ] || [ "$(ps -ef | grep httpd | grep -v grep | grep -v lscgid)" != "" ] ; then echo "Stopping Apache..." service_manager "stop" "httpd" sleep 1 RETRY=30 CHECK=$(ps -ef | grep httpd | grep -v grep | grep -v lscgid) while [ "$RETRY" -gt 0 ] && [ "$CHECK" != "" ] ; do ((RETRY--)) sleep 1 CHECK=$(ps -ef | grep httpd | grep -v grep | grep -v lscgid) done if [ "$CHECK" != "" ] ; then pkill -9 httpd > /dev/null 2>&1 sleep 1 fi if [ "$(ps -ef | grep httpd | grep -v grep | grep -v lscgid)" != "" ] ; then echo "Apache could not be stopped." exit 1 else echo "Apache killed successfully." fi fi } INST_USER=$(id) INST_UID=$(expr "$INST_USER" : 'uid=\(.*\)(.*) gid=.*') INST_USER=$(expr "$INST_USER" : 'uid=.*(\(.*\)) gid=.*') if [ "$INST_UID" -ne 0 ]; then check_errs 1 "Only root user can switch web server!" fi if [ $# -ne 1 ] ; then echo "Illegal parameters = $# !" display_usage fi # set LSWSHOME cd "$(dirname "$0")" CURDIR=$(pwd) LSWSHOME=$(dirname "$(dirname "$CURDIR")") if [ "x$1" != "xapache" ] && [ "x$1" != "xlsws" ] ; then display_usage fi detect_control_panel if [ "$CP" = "WHM" ] || [ "$CP" = "PSA" ] ; then switch_cp "$1" elif [ "$CP" = "DA" ] ; then switch_da "$1" elif [ "$CP" = "CWP" ] ; then switch_cwp "$1" fi