#!/usr/bin/env watchman unset reload service_username='cjdns' service_command='/usr/local/sbin/cjdroute' service_args='< /etc/cjdns/cjdroute.conf' cjdroute_tun_interface='cjd0' cjdroute_ipv6_addr='fca7:8aef:6571:63c5:b23c:2fbc:8dea:e207/8' cjdroute_listen_port='11270' service_pid=`lsof -i :"$cjdroute_listen_port" | tail -1 | cut -d ' ' -f 2` service_pid=`lsof -i :"$cjdroute_listen_port" | tail -1 | cut -d ' ' -f 2` cjdroute.create_tun() { ip tuntap add mode tun user "$service_username" group "$service_username" "$cjdroute_tun_interface" ip a add "$cjdroute_ipv6_addr" dev "$cjdroute_tun_interface" ip link set "$cjdroute_tun_interface" up } cjdroute.destroy_tun() { ip tuntap del mode tun "$cjdroute_tun_interface" } cjdroute.check_tun_module() { [[ -e '/dev/net/tun' ]] || { modprobe tun || { watchman.err "Could not load module tun!" return 1 } } } start() { cjdroute.check_tun_module || { return 1; } [[ "$service_username" ]] && { cjdroute.create_tun || { return 1; } } watchman.start } stop() { watchman.stop [[ "$service_username" ]] && { cjdroute.destroy_tun; } }