summaryrefslogtreecommitdiff
path: root/files/init.d/mumble-server.Debian
blob: 61b6808fef67e532b56519f51e02799f41bbed18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#! /bin/sh
#
### BEGIN INIT INFO
# Provides:             mumble-server
# Required-Start:       $network $local_fs $remote_fs dbus
# Required-Stop:	$network $local_fs $remote_fs dbus
# Should-Start:		$mysql
# Should-Stop:		$mysql
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Mumble VoIP Server
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=mumble-server
DESC="Mumble VoIP Server"
PIDDIR=/var/run/$NAME
PIDFILE=$PIDDIR/$NAME.pid
DAEMON=/usr/sbin/murmurd
USER=mumble-server
GROUP=mumble-server

test -x $DAEMON || exit 0

INIFILE=/etc/mumble-server.ini
DAEMON_OPTS="-ini $INIFILE"
MURMUR_DAEMON_START=0
MURMUR_USE_CAPABILITIES=0
MURMUR_LIMIT_NOFILE=0

# ECDHE Perfect Forward Secrecy on the Murmur server via an LD_PRELOAD
# https://github.com/ultramancool/ecdhforce
STARTSTOP="LD_PRELOAD=/var/lib/mumble-server/ecdhforce/ecdhforce.so start-stop-daemon"

# Include murmur defaults if available
if [ -f /etc/default/$NAME ] ; then
	. /etc/default/$NAME
fi

. /lib/init/vars.sh
. /lib/lsb/init-functions

if [ "$MURMUR_LIMIT_NOFILE" -gt 0 ] ; then
	ulimit -n $MURMUR_LIMIT_NOFILE
fi

case "$1" in
  start)
  	if [ "$MURMUR_DAEMON_START" != "1" ] ; then
  		log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME"
  		exit 0
  	fi
  	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	[ -d $PIDDIR ] || install -o $USER -d $PIDDIR
	if [ "$MURMUR_USE_CAPABILITIES" != "1" ] ; then
	  $STARTSTOP --start --quiet \
		--pidfile $PIDFILE \
		--chuid $USER:$GROUP \
		--exec $DAEMON \
		-- $DAEMON_OPTS
	else
	  $STARTSTOP --start --quiet \
		--pidfile $PIDFILE \
		--exec $DAEMON \
		-- $DAEMON_OPTS
	fi
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
  	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	$STARTSTOP --stop --quiet \
		--retry=TERM/30/KILL/5 \
		--pidfile $PIDFILE \
		--user $USER \
		--exec $DAEMON
	case "$?" in
		0|1)	rm -f $PIDFILE
			[ "$VERBOSE" != no ] && log_end_msg 0
			;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  force-reload)
	$STARTSTOP --stop --test --quiet \
		--pidfile $PIDFILE \
		--user $USER \
		--exec $DAEMON \
	&& $0 restart || exit 0
	;;
  restart)
 	[ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" "$NAME"
	$STARTSTOP --stop --quiet \
		--retry=TERM/30/KILL/5 \
		--pidfile $PIDFILE \
		--user $USER \
		--exec $DAEMON
	case "$?" in
		0|1)
		  	[ -d $PIDDIR ] || install -o $USER -d $PIDDIR
			rm -f $PIDFILE
			if [ "$MURMUR_USE_CAPABILITIES" != "1" ] ; then
			  $STARTSTOP --start --quiet \
				--pidfile $PIDFILE \
				--chuid $USER:$GROUP \
				--exec $DAEMON \
				-- $DAEMON_OPTS
			else
			  $STARTSTOP --start --quiet \
				--pidfile $PIDFILE \
				--exec $DAEMON \
				-- $DAEMON_OPTS
			fi
			case "$?" in
				0) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
				*) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
			esac
			;;
		*)
			[ "$VERBOSE" != no ] && log_end_msg 0
			;;
	esac
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

exit 0