You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							124 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							124 lines
						
					
					
						
							3.3 KiB
						
					
					
				| # --- SDE-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| # | |
| # Filename: package/.../stone/stone_mod_runlevel.sh | |
| # Copyright (C) 2008 The OpenSDE Project | |
| # Copyright (C) 2004 - 2006 The T2 SDE Project | |
| # Copyright (C) 1998 - 2003 Clifford Wolf | |
| # | |
| # More information can be found in the files COPYING and README. | |
| # | |
| # This program is free software; you can redistribute it and/or modify | |
| # it under the terms of the GNU General Public License as published by | |
| # the Free Software Foundation; version 2 of the License. A copy of the | |
| # GNU General Public License can be found in the file COPYING. | |
| # --- SDE-COPYRIGHT-NOTE-END --- | |
| # | |
| # [MAIN] 80 runlevel Runlevel Configuration (Services) | |
|  | |
| # Remove dead symlinks | |
| for x in /etc/rc.d/rc[0-6].d/* ; do | |
| 	[ -L "$x" -a ! -e "$x" ] && rm -f "$x" | |
| done | |
|  | |
| chrlv() { | |
| 	local srv=$1 rl=$2 pri=$3 | |
| 	if [ ! -e /etc/rc.d/rc$rl.d/S??$srv ] | |
| 	then | |
| 		ln -sf ../init.d/$srv /etc/rc.d/rc$rl.d/S$pri$srv | |
| 		kpr=`printf "%02d" $(( 100 - $pri ))` | |
| 		ln -sf ../init.d/$srv /etc/rc.d/rc$rl.d/K$kpr$srv | |
| 	else | |
| 		rm -f /etc/rc.d/rc$rl.d/[SK]??$srv | |
| 	fi | |
| } | |
|  | |
| chpri() { | |
| 	local srv=$1 pri=$2 | |
|  | |
| 	gui_input "Changing priority for service $1" "$pri" pri | |
|  | |
| 	if [ ! -z "${pri#[0-9][0-9]}" ] | |
| 	then | |
| 		gui_message "The value you entered is not valid." | |
| 		return | |
| 	fi | |
|  | |
| 	rm -f /etc/rc.d/rcX.d/X??$srv | |
| 	echo "The script '$srv' has the priority $pri." \ | |
| 						> /etc/rc.d/rcX.d/X$pri$srv | |
|  | |
| 	for x in 0 1 2 3 4 5 6 ; do | |
| 		if [ -e /etc/rc.d/rc$x.d/S??$srv ] ; then | |
| 			rm -f /etc/rc.d/rc$x.d/[SK]??$srv | |
| 			ln -sf ../init.d/$srv /etc/rc.d/rc$x.d/S$pri$srv | |
| 			kpr=`printf "%02d" $(( 100 - $pri ))` | |
| 			ln -sf ../init.d/$srv /etc/rc.d/rc$x.d/K$kpr$srv | |
| 		fi | |
| 	done | |
| } | |
|  | |
| edit_srv() { | |
| 	local srv=$1 id="runlevel_$RANDOM" cmd= | |
|  | |
| 	while | |
| 		cmd="gui_menu $id 'Runlevel Editor - $srv'" | |
| 		pri=`ls /etc/rc.d/rc?.d/[SX]??$srv 2> /dev/null | \ | |
| 		     cut -c18-19 | head -n 1` | |
| 		[ -z "$pri" ] && pri=99 | |
|  | |
| 		for rl in 1 2 3 4 5 ; do | |
| 			if [ -e /etc/rc.d/rc$rl.d/S??$srv ] | |
| 			then cmd="$cmd '[*] " ; else cmd="$cmd '[ ] " ; fi | |
| 			cmd="$cmd Run this script in runlevel $rl'" | |
| 			cmd="$cmd 'chrlv $srv $rl $pri'" | |
| 		done | |
|  | |
| 		cmd="$cmd '$pri   This scripts priority (01-99)'" | |
| 		cmd="$cmd 'chpri $srv $pri' '' ''" | |
|  | |
| 		cmd="$cmd 'Edit /etc/rc.d/init.d/$srv script'" | |
| 		cmd="$cmd \"gui_edit 'SysV Init Script $srv'" | |
| 		cmd="$cmd /etc/rc.d/init.d/$srv\"" | |
| 		cmd="$cmd \"(Re-)Start the '$srv' system service\"" | |
| 		cmd="$cmd '$STONE runlevel restart $srv'" | |
| 		eval "$cmd" | |
| 	do : ; done | |
| } | |
|  | |
| restart() { | |
| 	gui_cmd "(Re-)Starting System Service '$1'" \ | |
| 		"/sbin/rc $1 stop ; /sbin/rc $1 start" | |
| } | |
|  | |
| main() { | |
| 	while | |
| 		cmd="gui_menu runlevel 'Runlevel Editor - Select an" | |
| 		cmd="$cmd item to change the priority or runlevels'" | |
|  | |
| 		x=`mktemp` | |
| 		for srv in $( ls /etc/rc.d/init.d/ ) | |
| 		do | |
| 			[ -f /etc/rc.d/init.d/$srv ] || continue | |
|  | |
| 			pri=`ls /etc/rc.d/rc?.d/[SX]??$srv \ | |
| 				2> /dev/null | cut -c18-19 | head -n 1` | |
| 			[ -z "$pri" ] && pri=99 | |
|  | |
| 			rlv= | |
| 			for x in 1 2 3 4 5 ; do | |
| 				if [ -e /etc/rc.d/rc$x.d/S??$srv ] | |
| 				then rlv="${rlv}$x" ; else rlv="${rlv}-" ; fi | |
| 			done | |
|  | |
| 			desc=`grep '# *Desc:' /etc/rc.d/init.d/$srv | \ | |
| 			      cut -f2- -d: | tr -d "'" | cut -c1-45` | |
| 			desc="$( printf "%-10s %s" "$srv" "$desc" )" | |
|  | |
| 			echo "$pri$srv '$pri $rlv  $desc' 'edit_srv $srv'" | |
| 		done | sort > $x | |
| 		cmd="$cmd $(cut -f2- -d' ' < $x | tr '\n' ' ')" | |
| 		rm -f $x ; eval "$cmd" | |
| 	do : ; done | |
| } | |
| 
 | |
| 
 |