mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-12-22 23:25:39 +00:00
Merge pull request #186 from neilalexander/freebsd-service
Add freebsd service script into contrib
This commit is contained in:
commit
85e8968a4d
72
contrib/freebsd/yggdrasil
Normal file
72
contrib/freebsd/yggdrasil
Normal file
@ -0,0 +1,72 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Put the yggdrasil and yggdrasilctl binaries into /usr/local/bin
|
||||
# Then copy this script into /etc/rc.d/yggdrasil
|
||||
# Finally, run:
|
||||
# 1. chmod +x /etc/rc.d/yggdrasil /usr/local/bin/{yggdrasil,yggdrasilctl}
|
||||
# 2. echo "yggdrasil_enable=yes" >> /etc/rc.d
|
||||
# 3. service yggdrasil start
|
||||
#
|
||||
# PROVIDE: yggdrasil
|
||||
# REQUIRE: networking
|
||||
# KEYWORD:
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="yggdrasil"
|
||||
rcvar="yggdrasil_enable"
|
||||
|
||||
start_cmd="${name}_start"
|
||||
stop_cmd="${name}_stop"
|
||||
|
||||
pidfile="/var/run/yggdrasil/${name}.pid"
|
||||
command="/usr/sbin/daemon"
|
||||
command_args="-P ${pidfile} -r -f ${yggdrasil_command}"
|
||||
|
||||
yggdrasil_start()
|
||||
{
|
||||
test ! -x /usr/local/bin/yggdrasil && (
|
||||
logger -s -t yggdrasil "Warning: /usr/local/bin/yggdrasil is missing or not executable"
|
||||
logger -s -t yggdrasil "Copy the yggdrasil binary into /usr/local/bin and then chmod +x /usr/local/bin/yggdrasil"
|
||||
return 1
|
||||
)
|
||||
|
||||
test ! -f /etc/yggdrasil.conf && (
|
||||
logger -s -t yggdrasil "Generating new configuration file into /etc/yggdrasil.conf"
|
||||
/usr/local/bin/yggdrasil -genconf > /etc/yggdrasil.conf
|
||||
)
|
||||
|
||||
tap_path="$(cat /etc/yggdrasil.conf | egrep -o '/dev/tap[0-9]{1,2}$')"
|
||||
tap_name="$(echo -n ${tap_path} | tr -d '/dev/')"
|
||||
|
||||
/sbin/ifconfig ${tap_name} >/dev/null 2>&1 || (
|
||||
logger -s -t yggdrasil "Creating ${tap_name} adapter"
|
||||
/sbin/ifconfig ${tap_name} create || logger -s -t yggdrasil "Failed to create ${tap_name} adapter"
|
||||
)
|
||||
|
||||
test ! -d /var/run/yggdrasil && mkdir -p /var/run/yggdrasil
|
||||
|
||||
logger -s -t yggdrasil "Starting yggdrasil"
|
||||
${command} ${command_args} /usr/local/bin/yggdrasil -useconffile /etc/yggdrasil.conf \
|
||||
1>/var/log/yggdrasil.stdout.log \
|
||||
2>/var/log/yggdrasil.stderr.log &
|
||||
}
|
||||
|
||||
yggdrasil_stop()
|
||||
{
|
||||
logger -s -t yggdrasil "Stopping yggdrasil"
|
||||
test -f /var/run/yggdrasil/${name}.pid && kill -TERM $(cat /var/run/yggdrasil/${name}.pid)
|
||||
|
||||
tap_path="$(cat /etc/yggdrasil.conf | grep /dev/tap | egrep -o '/dev/.*$')"
|
||||
tap_name="$(echo -n ${tap_path} | tr -d '/dev/')"
|
||||
|
||||
/sbin/ifconfig ${tap_name} >/dev/null 2>&1 && (
|
||||
logger -s -t yggdrasil "Destroying ${tap_name} adapter"
|
||||
/sbin/ifconfig ${tap_name} destroy || logger -s -t yggdrasil "Failed to destroy ${tap_name} adapter"
|
||||
)
|
||||
}
|
||||
|
||||
load_rc_config $name
|
||||
: ${yggdrasil_enable:=no}
|
||||
|
||||
run_rc_command "$1"
|
Loading…
Reference in New Issue
Block a user