Add process status handling
This commit is contained in:
		
							
								
								
									
										28
									
								
								firestarter
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								firestarter
									
									
									
									
									
								
							@@ -227,6 +227,34 @@ fsstatus() {
 | 
			
		||||
			printf "$errorline\n"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	# Service information
 | 
			
		||||
	if [ -d "$_optrundir" ]; then
 | 
			
		||||
		for pidfile in "$_optrundir"/*.pid; do
 | 
			
		||||
			local name="$(basename -- "$pidfile" .pid)"
 | 
			
		||||
			local pid="$(< "$pidfile")"
 | 
			
		||||
			local len=16
 | 
			
		||||
			local status
 | 
			
		||||
			local description
 | 
			
		||||
			if [ -z "$pid" ]; then
 | 
			
		||||
				# PID is empty
 | 
			
		||||
				status="\e[31m○\e[0m"
 | 
			
		||||
				description="No PID"
 | 
			
		||||
			elif ! [ "$pid" -gt 0 ] 2> /dev/null; then
 | 
			
		||||
				# PID is not a number greater than 0
 | 
			
		||||
				status="\e[31m○\e[0m"
 | 
			
		||||
				description="Invalid PID ($pid)"
 | 
			
		||||
			elif ! [ -d "/proc/$pid" ]; then
 | 
			
		||||
				# PID is valid, but does not exist in /proc (i.e. is dead)
 | 
			
		||||
				status="\e[31m●\e[0m"
 | 
			
		||||
				description="Dead (PID $pid)"
 | 
			
		||||
			else
 | 
			
		||||
				# PID is good, time for secondary validation
 | 
			
		||||
				status="\e[32m●\e[0m"
 | 
			
		||||
				description="Running (PID $pid)"
 | 
			
		||||
			fi
 | 
			
		||||
			printf "\t$status %-${len}.${len}s $description\n" "$name"
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
step_preexecute() {
 | 
			
		||||
	# Special things that can't use simple configuration files
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user