Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.22.75.12
Web Server : Apache/2.4.61 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /etc/rc0.d/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /etc/rc0.d/K04sendsigs
#! /bin/sh
### BEGIN INIT INFO
# Provides:          sendsigs
# Required-Start:    
# Required-Stop:     umountnfs
# Default-Start:
# Default-Stop:      0 6
# Short-Description: Kill all remaining processes.
# Description: 
### END INIT INFO

PATH=/usr/sbin:/usr/bin:/sbin:/bin

. /lib/lsb/init-functions

# Make it possible to see who the misbehaving processes are
report_unkillable() {
	if [ -x /usr/bin/pstree ] ; then
		echo "Currently running processes (pstree):"
		pstree
	elif [ -x /bin/ps ] ; then
		echo "Currently running processes (ps):"
		ps -ef
	fi
}

do_stop () {
	OMITPIDS=

	for omitfile in /run/sendsigs.omit; do
		if [ -e $omitfile ]; then
			for pid in $(cat $omitfile); do
				OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid"
			done
		fi
	done

	# Load sendsigs.omit.d/packagename files too, to make it
	# possible for scripts that need to modify the list of pids at
	# run time without race conditions.
	for omitdir in /run/sendsigs.omit.d; do
		if [ -d "${omitdir}" ]; then
			for pidfile in "${omitdir}/"*; do
				[ -f "$pidfile" ] || continue
				for pid in $(cat $pidfile); do
					OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid"
				done
			done
		fi
	done

	# Upstart jobs have their own "stop on" clauses that sends
	# SIGTERM/SIGKILL just like this, so if they're still running,
	# they're supposed to be
	if [ -x /sbin/initctl ]; then
		for pid in $(initctl list | sed -n -e "/process [0-9]/s/.*process //p"); do
			OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid"
		done
	fi

	# Flush the kernel I/O buffer before we start to kill
	# processes, to make sure the IO of already stopped services to
	# not slow down the remaining processes to a point where they
	# are accidentily killed with SIGKILL because they did not
	# manage to shut down in time.
	sync

	# Kill all processes.
	log_action_begin_msg "Asking all remaining processes to terminate"
	killall5 -15 $OMITPIDS # SIGTERM
	log_action_end_msg 0
	alldead=""
	for seq in 1 2 3 4 5 6 7 8 9 10; do
		# use SIGCONT/signal 18 to check if there are
		# processes left.  No need to check the exit code
		# value, because either killall5 work and it make
		# sense to wait for processes to die, or it fail and
		# there is nothing to wait for.

		# did an upstart job start since we last polled initctl? check
		# again on each loop and add any new jobs (e.g., plymouth) to
		# the list.  If we did miss one starting up, this beats waiting
		# 10 seconds before shutting down.
		if [ -x /sbin/initctl ]; then
		    for pid in $(initctl list | sed -n -e "/process [0-9]/s/.*process //p"); do
			OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid"
		    done
		fi
		if killall5 -18 $OMITPIDS ; then
		    :
		else
		    alldead=1
		    break
		fi

		sleep 1
	done
	if [ -z "$alldead" ] ; then
	    report_unkillable
	    log_action_begin_msg "Killing all remaining processes"
	    killall5 -9 $OMITPIDS # SIGKILL
	    log_action_end_msg 1
	else
	    log_action_begin_msg "All processes ended within $seq seconds"
	    log_action_end_msg 0
	fi
}

case "$1" in
  start|status)
	# No-op
	;;
  restart|reload|force-reload)
	echo "Error: argument '$1' not supported" >&2
	exit 3
	;;
  stop)
	do_stop
	;;
  *)
	echo "Usage: $0 start|stop" >&2
	exit 3
	;;
esac

:

Anon7 - 2022
AnonSec Team