Project

General

Profile

Statistics
| Revision:

root / trunk / swipe / tooltron.daemon @ 296

History | View | Annotate | Download (4.12 KB)

1
#! /bin/sh
2
### BEGIN INIT INFO
3
# Provides:          tooltron
4
# Required-Start:    $remote_fs $syslog
5
# Required-Stop:     $remote_fs $syslog
6
# Default-Start:     2 3 4 5
7
# Default-Stop:      0 1 6
8
# Short-Description: The tooltron server
9
# Description:       This file manages the tooltron server as a service
10
### END INIT INFO
11

    
12
# Author: Brad Neuman <bradneuman@gmail.com>
13
# This is a decently big hack that runs a screen to run the tooltron script
14

    
15
# Do NOT "set -e"
16

    
17
# PATH should only include /usr/* if it runs after the mountnfs.sh script
18
PATH=/sbin:/usr/sbin:/bin:/usr/bin
19
DESC="Tooltron Server"
20
NAME=tooltron
21
DAEMON=/usr/bin/screen
22
#/usr/sbin/$NAME
23
DAEMON_ARGS="-dmS tooltron /usr/sbin/runtron.sh"
24
PIDFILE=/var/run/$NAME.pid
25
SCRIPTNAME=/etc/init.d/$NAME
26
USER=tooltron
27

    
28
# Exit if the package is not installed
29
[ -x "$DAEMON" ] || exit 0
30

    
31
# Read configuration variable file if it is present
32
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
33

    
34
# Load the VERBOSE setting and other rcS variables
35
. /lib/init/vars.sh
36

    
37
# Define LSB log_* functions.
38
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
39
. /lib/lsb/init-functions
40

    
41
#
42
# Function that starts the daemon/service
43
#
44
do_start()
45
{
46
	# Return
47
	#   0 if daemon has been started
48
	#   1 if daemon was already running
49
	#   2 if daemon could not be started
50
	start-stop-daemon --start --quiet -c $USER --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
51
		|| return 1
52
	start-stop-daemon --start --quiet -c $USER --pidfile $PIDFILE --exec $DAEMON -- \
53
		$DAEMON_ARGS \
54
		|| return 2
55
	# Add code here, if necessary, that waits for the process to be ready
56
	# to handle requests from services started subsequently which depend
57
	# on this one.  As a last resort, sleep for some time.
58
}
59

    
60
#
61
# Function that stops the daemon/service
62
#
63
do_stop()
64
{
65
	# Return
66
	#   0 if daemon has been stopped
67
	#   1 if daemon was already stopped
68
	#   2 if daemon could not be stopped
69
	#   other if a failure occurred
70
	start-stop-daemon --stop --quiet -u $USER
71
	RETVAL="$?"
72
	# [ "$RETVAL" = 2 ] && return 2
73
	# # Wait for children to finish too if this is a daemon that forks
74
	# # and if the daemon is only ever run from this initscript.
75
	# # If the above conditions are not satisfied then add some other code
76
	# # that waits for the process to drop all resources that could be
77
	# # needed by services started subsequently.  A last resort is to
78
	# # sleep for some time.
79
	# start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
80
	# [ "$?" = 2 ] && return 2
81
	# # Many daemons don't delete their pidfiles when they exit.
82
	rm -f $PIDFILE
83
	return "$RETVAL"
84
}
85

    
86
#
87
# Function that sends a SIGHUP to the daemon/service
88
#
89
do_reload() {
90
	#
91
	# If the daemon can reload its configuration without
92
	# restarting (for example, when it is sent a SIGHUP),
93
	# then implement that here.
94
	#
95
	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
96
	return 0
97
}
98

    
99
case "$1" in
100
  start)
101
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
102
	do_start
103
	case "$?" in
104
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
105
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
106
	esac
107
	;;
108
  stop)
109
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
110
	do_stop
111
	case "$?" in
112
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
113
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
114
	esac
115
	;;
116
  status)
117
       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
118
       ;;
119
  #reload|force-reload)
120
	#
121
	# If do_reload() is not implemented then leave this commented out
122
	# and leave 'force-reload' as an alias for 'restart'.
123
	#
124
	#log_daemon_msg "Reloading $DESC" "$NAME"
125
	#do_reload
126
	#log_end_msg $?
127
	#;;
128
  restart|force-reload)
129
	#
130
	# If the "reload" option is implemented then remove the
131
	# 'force-reload' alias
132
	#
133
	log_daemon_msg "Restarting $DESC" "$NAME"
134
	do_stop
135
	case "$?" in
136
	  0|1)
137
		do_start
138
		case "$?" in
139
			0) log_end_msg 0 ;;
140
			1) log_end_msg 1 ;; # Old process is still running
141
			*) log_end_msg 1 ;; # Failed to start
142
		esac
143
		;;
144
	  *)
145
	  	# Failed to stop
146
		log_end_msg 1
147
		;;
148
	esac
149
	;;
150
  *)
151
	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
152
	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
153
	exit 3
154
	;;
155
esac
156

    
157
: