File: rotter.init

package info (click to toggle)
rotter 0.9-3.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 652 kB
  • sloc: sh: 3,950; ansic: 1,214; makefile: 23
file content (125 lines) | stat: -rw-r--r-- 3,188 bytes parent folder | download | duplicates (3)
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
#!/bin/sh
#
# Rotter init script
#
### BEGIN INIT INFO
# Provides:          rotter
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: init-Script for system wide fetchmail daemon
### END INIT INFO
#
set -e

# Defaults
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/rotter
USER=
OPTIONS=""

PIDFILE="/var/run/rotter.pid"

test -f /etc/default/rotter && . /etc/default/rotter || exit 0

OPTIONS="$OPTIONS"

if [ ! "x$START_DAEMON" = "xyes" ]; then
	exit 0
fi

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in
	start)
		if test -e $PIDFILE ; then
			pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
			PIDDIR=/proc/$pid
		    if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
				log_failure_msg "rotter already started; not starting."
				exit 0
			else
				log_warning_msg "Removing stale PID file $PIDFILE."
				rm -f $PIDFILE
			fi
		fi

		while ! su - $USER -c jack_lsp > /dev/null 2>&1; do
			sleep 0.1
		done

	        log_begin_msg "Starting rotter audio server:" "rotter"
		if start-stop-daemon -m -b -S -o -q -p $PIDFILE -x $DAEMON -u $USER -c $USER -a $DAEMON -- $OPTIONS; then
			log_end_msg 0
		else
			log_end_msg 1
			exit 1
		fi
		;;
	stop)
		if ! test -e $PIDFILE ; then
			log_failure_msg "Pidfile not found! Is rotter running?"
			exit 0
		fi
	        log_begin_msg "Stopping rotter audio server:" "rotter"
		if start-stop-daemon -m -K -o -q -p $PIDFILE -x $DAEMON -u $USER; then
                        rm -f $PIDFILE
			log_end_msg 0
		else
			log_end_msg 1
			exit 1
		fi
		;;
	force-reload|restart)
	        log_begin_msg "Restarting rotter audio server:" "rotter"
		if ! start-stop-daemon -m -K -o -q -p $PIDFILE -x $DAEMON -u $USER; then
			log_end_msg 1
			exit 1
		fi
		sleep 1
                rm -f $PIDFILE || true
		if start-stop-daemon -m -b -S -o -q -p $PIDFILE -x $DAEMON -u $USER -c $USER -a $DAEMON -- $OPTIONS; then
			log_end_msg 0
		else
			log_end_msg 1
			exit 1
		fi
		;;
	try-restart)
		if test -e $PIDFILE ; then
			pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
			PIDDIR=/proc/$pid
			if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
				$0 restart
				exit 0
			fi
		fi
		test -f /etc/rc`/sbin/runlevel | cut -d' ' -f2`.d/S*rotter* && $0 start
		;;
	awaken)
	        log_begin_msg "Awakening rotter audio server:" "rotter"
		if [ -s $PIDFILE ]; then
			start-stop-daemon -K -s 10 -q -p $PIDFILE -x $DAEMON
			log_end_msg 0
			exit 0
		else
			log_end_msg 1
			exit 1
		fi
		;;
	*)
		log_warning_msg "Usage: /etc/init.d/rotter {start|stop|restart|force-reload|awaken|debug-run}"
		log_warning_msg "  start - starts system-wide rotter service"
		log_warning_msg "  stop  - stops system-wide rotter service"
		log_warning_msg "  restart, force-reload - starts a new system-wide rotter service"
		log_warning_msg "  awaken - tell system-wide rotter to start a poll cycle immediately"
		log_warning_msg "  debug-run [strace [strace options...]] - start a debug run of the"
		log_warning_msg "    system-wide rotter service, optionally running it under strace"
		exit 1
		;;
esac

exit 0