| 
									
										
										
										
											2013-11-05 18:10:22 +04:00
										 |  |  | #!/usr/bin/env watchman | 
					
						
							| 
									
										
										
										
											2014-07-25 00:31:44 +04:00
										 |  |  | # Two warnings: | 
					
						
							|  |  |  | # 1) This script uses a script to run cjdroute and feed it | 
					
						
							| 
									
										
										
										
											2014-09-30 08:42:00 +04:00
										 |  |  | #	 the config. It can be found in the main cjdns repo: | 
					
						
							|  |  |  | #	 contrib/bash/run-cjdroute.bash | 
					
						
							|  |  |  | #	 Or here: http://sprunge.us/gYKX | 
					
						
							| 
									
										
										
										
											2014-07-25 00:31:44 +04:00
										 |  |  | # 2) service_respawn is disabled by default because you need | 
					
						
							|  |  |  | #    "noBackground":1 in cjdroute.conf for it to actually work. | 
					
						
							|  |  |  | #    Barely. | 
					
						
							| 
									
										
										
										
											2013-11-05 18:10:22 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | unset reload | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-11 14:50:48 +03:00
										 |  |  | #service_respawn=true | 
					
						
							| 
									
										
										
										
											2014-09-30 08:49:21 +04:00
										 |  |  | service_command='/usr/bin/run-cjdroute' | 
					
						
							| 
									
										
										
										
											2014-04-04 15:40:00 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-05 11:52:51 +04:00
										 |  |  | cjdroute_config='/etc/cjdroute.conf' | 
					
						
							| 
									
										
										
										
											2014-04-05 23:59:52 +04:00
										 |  |  | cjdroute_admin_port='11234' | 
					
						
							| 
									
										
										
										
											2013-11-05 18:10:22 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-13 11:04:27 +04:00
										 |  |  | cjdroute.check_tun_module() { | 
					
						
							|  |  |  | 	[[ -e '/dev/net/tun' ]] || { | 
					
						
							|  |  |  | 		modprobe tun || { | 
					
						
							|  |  |  | 			watchman.err "Could not load module tun!" | 
					
						
							|  |  |  | 			return 1 | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-05 18:10:22 +04:00
										 |  |  | start() { | 
					
						
							| 
									
										
										
										
											2013-11-13 11:04:27 +04:00
										 |  |  | 	cjdroute.check_tun_module || { return 1; } | 
					
						
							| 
									
										
										
										
											2014-02-26 01:57:59 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	[[ -e "$cjdroute_config" ]] || { | 
					
						
							|  |  |  | 		watchman.err "$cjdroute_config does not exist, please create it by running cjdroute --genconf >> /etc/cjdroute.conf" | 
					
						
							|  |  |  | 		return 1 | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-03 11:05:52 +04:00
										 |  |  | 	watchman.start | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | stop() { | 
					
						
							|  |  |  | 	[[ "$service_respawn" == 'true' ]] && { watchman.stop; } # stopping the watchdog | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	# Stopping the actual s-o-b daemon that won't die properly. | 
					
						
							|  |  |  | 	cjdroute_control_pid=`lsof -i :"$cjdroute_admin_port" | tail -1 | cut -d ' ' -f 2` | 
					
						
							|  |  |  | 	watchman.pid_check "$cjdroute_control_pid" && { | 
					
						
							|  |  |  | 		kill "$cjdroute_control_pid" | 
					
						
							|  |  |  | 		watchman.pid_wait "$cjdroute_control_pid" | 
					
						
							| 
									
										
										
										
											2014-06-28 10:54:06 +04:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-11-05 18:10:22 +04:00
										 |  |  | } |