Removed dependency on LSB - script should now work on generic UNIX and Linux distros...
[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:   - 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 # Short-Description: Guacamole proxy daemon
49 # Description: The Guacamole proxy daemon, required to translate remote desktop protocols into the text-based Guacamole protocol used by the JavaScript application.
50 ### END INIT INFO
51
52 prog="guacd"
53 exec="@sbindir@/$prog"
54 pidfile="/var/run/$prog.pid"
55
56 # Returns PID of currently running process, if any
57 getpid() {
58
59     if [ -f "$pidfile" ]
60     then
61
62         read PID < "$pidfile"
63
64         # If pidfile contains PID and PID is valid
65         if [ -n "$PID" ] && ps "$PID" > /dev/null 2>&1
66         then
67             echo "$PID"
68             return 0
69         fi
70
71     fi
72
73     # pidfile/pid not found, or process is dead
74     return 1
75
76 }
77
78 start() {
79     [ -x $exec ] || exit 5
80     echo -n "Starting $prog: "
81
82     getpid > /dev/null || $exec -p "$pidfile" 
83     retval=$?
84
85     case "$retval" in
86         0)
87             echo "SUCCESS"
88             ;;
89         *)
90             echo "FAIL"
91             ;;
92     esac
93
94     return $retval
95 }
96
97 stop() {
98     echo -n "Stopping $prog: "
99     
100     PID=`getpid`
101     retval=$?
102
103     case "$retval" in
104         0)
105             if kill $PID > /dev/null 2>&1
106             then
107                 echo "SUCCESS"
108                 return 0
109             fi
110
111             echo "FAIL"
112             return 1
113             ;;
114         *)
115             echo "SUCCESS (not running)"
116             return 0
117             ;;
118     esac
119
120 }
121
122 restart() {
123     stop && start
124 }
125
126 force_reload() {
127     restart
128 }
129
130 status() {
131     
132     PID=`getpid`
133     retval=$?
134
135     case "$retval" in
136         0)
137             echo "$prog is running with PID=$PID."
138             ;;
139         *)
140             echo "$prog is not running."
141             ;;
142     esac
143
144     return $retval
145
146 }
147
148 case "$1" in
149     start|stop|status|restart|force-reload)
150         $1
151         ;;
152     try-restart)
153         status && restart
154         ;;
155     *)
156         echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
157         exit 2
158 esac
159 exit $?
160