2013-11-05 14:10:22 +00:00
|
|
|
#!/usr/bin/env watchman
|
2014-07-24 20:31:44 +00:00
|
|
|
# Two warnings:
|
|
|
|
# 1) This script uses a script to run cjdroute and feed it
|
2014-09-30 04:42:00 +00: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-24 20:31:44 +00: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 14:10:22 +00:00
|
|
|
|
|
|
|
unset reload
|
|
|
|
|
2014-08-02 17:35:27 +00:00
|
|
|
service_respawn=true
|
2014-09-30 04:47:09 +00:00
|
|
|
service_command='run-cjdroute' # This is a very custom thing, so let's just search for it in $PATH
|
2014-04-04 11:40:00 +00:00
|
|
|
|
2014-04-05 07:52:51 +00:00
|
|
|
cjdroute_config='/etc/cjdroute.conf'
|
2014-04-05 19:59:52 +00:00
|
|
|
cjdroute_admin_port='11234'
|
2013-11-05 14:10:22 +00:00
|
|
|
|
2013-11-13 07:04:27 +00:00
|
|
|
cjdroute.check_tun_module() {
|
|
|
|
[[ -e '/dev/net/tun' ]] || {
|
|
|
|
modprobe tun || {
|
|
|
|
watchman.err "Could not load module tun!"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-11-05 14:10:22 +00:00
|
|
|
start() {
|
2013-11-13 07:04:27 +00:00
|
|
|
cjdroute.check_tun_module || { return 1; }
|
2014-02-25 21:57:59 +00: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 07:05:52 +00: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 06:54:06 +00:00
|
|
|
}
|
2013-11-05 14:10:22 +00:00
|
|
|
}
|