ssm-services/init.d/cjdroute

49 lines
1.0 KiB
Plaintext
Executable File

#!/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`
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; }
}