Added Default-Start/Stop to init.d script.
[guacd.git] / init.d / guacd.in
1 #!/bin/sh
2
3 # ***** BEGIN LICENSE BLOCK *****
4 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 #
6 # The contents of this file are subject to the Mozilla Public License Version
7 # 1.1 (the "License"); you may not use this file except in compliance with
8 # the License. You may obtain a copy of the License at
9 # http://www.mozilla.org/MPL/
10 #
11 # Software distributed under the License is distributed on an "AS IS" basis,
12 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 # for the specific language governing rights and limitations under the
14 # License.
15 #
16 # The Original Code is guacd.
17 #
18 # The Initial Developer of the Original Code is
19 # Michael Jumper.
20 # Portions created by the Initial Developer are Copyright (C) 2010
21 # the Initial Developer. All Rights Reserved.
22 #
23 # Contributor(s):
24 #
25 # Alternatively, the contents of this file may be used under the terms of
26 # either the GNU General Public License Version 2 or later (the "GPL"), or
27 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28 # in which case the provisions of the GPL or the LGPL are applicable instead
29 # of those above. If you wish to allow use of your version of this file only
30 # under the terms of either the GPL or the LGPL, and not to allow others to
31 # use your version of this file under the terms of the MPL, indicate your
32 # decision by deleting the provisions above and replace them with the notice
33 # and other provisions required by the GPL or the LGPL. If you do not delete
34 # the provisions above, a recipient may use your version of this file under
35 # the terms of any one of the MPL, the GPL or the LGPL.
36 #
37 # ***** END LICENSE BLOCK *****
38
39 # guacd
40 #
41 # chkconfig:   2345 20 80
42 # description: Guacamole proxy daemon
43
44 ### BEGIN INIT INFO
45 # Provides:          guacd
46 # Required-Start:    $network $syslog 
47 # Required-Stop:     $network $syslog
48 # Default-Start:     2 3 4 5
49 # Default-Stop:      0 1 6
50 # Short-Description: Guacamole proxy daemon
51 # Description: The Guacamole proxy daemon, required to translate remote desktop protocols into the text-based Guacamole protocol used by the JavaScript application.
52 ### END INIT INFO
53
54 prog="guacd"
55 exec="@sbindir@/$prog"
56 pidfile="/var/run/$prog.pid"
57
58 # Returns PID of currently running process, if any
59 getpid() {
60
61     if [ -f "$pidfile" ]
62     then
63
64         read PID < "$pidfile"
65
66         # If pidfile contains PID and PID is valid
67         if [ -n "$PID" ] && ps "$PID" > /dev/null 2>&1
68         then
69             echo "$PID"
70             return 0
71         fi
72
73     fi
74
75     # pidfile/pid not found, or process is dead
76     return 1
77
78 }
79
80 start() {
81     [ -x $exec ] || exit 5
82     echo -n "Starting $prog: "
83
84     getpid > /dev/null || $exec -p "$pidfile" 
85     retval=$?
86
87     case "$retval" in
88         0)
89             echo "SUCCESS"
90             ;;
91         *)
92             echo "FAIL"
93             ;;
94     esac
95
96     return $retval
97 }
98
99 stop() {
100     echo -n "Stopping $prog: "
101     
102     PID=`getpid`
103     retval=$?
104
105     case "$retval" in
106         0)
107             if kill $PID > /dev/null 2>&1
108             then
109                 echo "SUCCESS"
110                 return 0
111             fi
112
113             echo "FAIL"
114             return 1
115             ;;
116         *)
117             echo "SUCCESS (not running)"
118             return 0
119             ;;
120     esac
121
122 }
123
124 restart() {
125     stop && start
126 }
127
128 force_reload() {
129     restart
130 }
131
132 status() {
133     
134     PID=`getpid`
135     retval=$?
136
137     case "$retval" in
138         0)
139             echo "$prog is running with PID=$PID."
140             ;;
141         *)
142             echo "$prog is not running."
143             ;;
144     esac
145
146     return $retval
147
148 }
149
150 case "$1" in
151     start|stop|status|restart|force-reload)
152         $1
153         ;;
154     try-restart)
155         status && restart
156         ;;
157     *)
158         echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
159         exit 2
160 esac
161 exit $?
162