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.
		
		
		
		
		
			
		
			
				
					
					
						
							64 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							64 lines
						
					
					
						
							1.1 KiB
						
					
					
				
								#!/bin/sh
							 | 
						|
								
							 | 
						|
								. /etc/init.d/globals
							 | 
						|
								
							 | 
						|
								if [ -e /var/etc/.coredump ]; then
							 | 
						|
									ulimit -c unlimited
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								# uncomment for gstreamer debugging
							 | 
						|
								#export GST_DEBUG=4
							 | 
						|
								
							 | 
						|
								# if neutrino crashes, just restart it or reboot the box?
							 | 
						|
								REBOOT_ON_ERROR=false
							 | 
						|
								
							 | 
						|
								do_cleanup() {
							 | 
						|
									# remove files created by neutrino
							 | 
						|
									rm -f /tmp/.timer
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								do_shutdown() {
							 | 
						|
									echo "Shutdown ..." > /dev/dbox/oled0
							 | 
						|
									poweroff
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								do_reboot() {
							 | 
						|
									echo "Reboot ..." > /dev/dbox/oled0
							 | 
						|
									reboot
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								while true; do
							 | 
						|
									do_cleanup
							 | 
						|
								
							 | 
						|
									neutrino; RET=$?
							 | 
						|
									LOGINFO "Neutrino exited with exit code $RET"
							 | 
						|
								
							 | 
						|
									if [ $RET -eq 0 ]; then
							 | 
						|
										# do nothing
							 | 
						|
										break
							 | 
						|
									elif [ $RET -eq 1 ]; then
							 | 
						|
										do_shutdown
							 | 
						|
										break
							 | 
						|
									elif [ $RET -eq 2 ]; then
							 | 
						|
										do_cleanup
							 | 
						|
										do_reboot
							 | 
						|
										break
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
									echo "Neutrino: $RET" > /dev/dbox/oled0
							 | 
						|
								
							 | 
						|
									# 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
							 | 
						|
								
							 |