5 changed files with 28 additions and 82 deletions
			
			
		| @ -1,68 +0,0 @@ | |||||
| #!/bin/sh |  | ||||
| 
 |  | ||||
| . /etc/init.d/globals |  | ||||
| 
 |  | ||||
| # Neutrino's exit codes |  | ||||
| ERROR=-1 |  | ||||
| NORMAL=0 |  | ||||
| SHUTDOWN=1 |  | ||||
| REBOOT=2 |  | ||||
| 
 |  | ||||
| # if neutrino crashes, just restart it or reboot the box? |  | ||||
| REBOOT_ON_ERROR=true |  | ||||
| 
 |  | ||||
| do_cleanup() { |  | ||||
| 	# remove files created by neutrino |  | ||||
| 	rm -f /tmp/.timer |  | ||||
| } |  | ||||
| 
 |  | ||||
| do_shutdown() { |  | ||||
| 	dt -t"SHUTDOWN" |  | ||||
| 	poweroff |  | ||||
| } |  | ||||
| 
 |  | ||||
| do_reboot() { |  | ||||
| 	dt -t"REBOOT" |  | ||||
| 	reboot |  | ||||
| } |  | ||||
| 
 |  | ||||
| while true; do |  | ||||
| 	do_cleanup |  | ||||
| 
 |  | ||||
| 	if [ -e /var/etc/.coredump ]; then |  | ||||
| 		# unlimit core file size |  | ||||
| 		ulimit -c unlimited |  | ||||
| 	fi |  | ||||
| 
 |  | ||||
| 	neutrino; RET=$? |  | ||||
| 	LOGINFO "Neutrino exited with exit code $RET" |  | ||||
| 
 |  | ||||
| 	if [ $RET -eq $NORMAL ]; then |  | ||||
| 		# do nothing |  | ||||
| 		break |  | ||||
| 	elif [ $RET -eq $SHUTDOWN ]; then |  | ||||
| 		do_shutdown |  | ||||
| 		break |  | ||||
| 	elif [ $RET -eq $REBOOT ]; then |  | ||||
| 		do_cleanup |  | ||||
| 		do_reboot |  | ||||
| 		break |  | ||||
| 	fi |  | ||||
| 
 |  | ||||
| 	dt -t"NEUTRINO: $RET" |  | ||||
| 
 |  | ||||
| 	# report errors on external display |  | ||||
| 	if [ -e /tmp/.lcd-* ]; then |  | ||||
| 		echo "0"		> /tmp/lcd/mode_logo |  | ||||
| 		echo "Neutrino"		> /tmp/lcd/service |  | ||||
| 		echo "Error: $RET"	> /tmp/lcd/event |  | ||||
| 	fi |  | ||||
| 
 |  | ||||
| 	if $REBOOT_ON_ERROR; then |  | ||||
| 		LOGINFO "Rebooting due to REBOOT_ON_ERROR=true and exit code $RET" |  | ||||
| 		do_reboot |  | ||||
| 		break |  | ||||
| 	fi |  | ||||
| 
 |  | ||||
| 	LOGINFO "Restarting neutrino after exit code $RET" |  | ||||
| done |  | ||||
					Loading…
					
					
				
		Reference in new issue