1 #!/bin/sh
2 # Start/stop the GOsa support daemon infrastructure.
3 #
4 ### BEGIN INIT INFO
5 # Provides: gosa-si
6 # Required-Start: $network $remote_fs $named $syslog $time
7 # Required-Stop: $network $remote_fs $named $syslog $time
8 # Default-Start: 2 3 4 5
9 # Default-Stop: 0 1 6
10 # Short-Description: GOsa message server/client component
11 # Description: gosa-si establishes the communication between a couple of
12 # GOsa hosting servers and optionally clients to do event
13 # signaling for all communication partners.
14 ### END INIT INFO
16 # variables for the gosa-si server and client.
17 SERVER="gosa-si-server"
18 CLIENT="gosa-si-client"
19 DAEMON_SERVER="/usr/sbin/${SERVER}"
20 DAEMON_CLIENT="/usr/sbin/${CLIENT}"
21 PIDFILE_SERVER="/var/run/${SERVER}.pid"
22 PIDFILE_CLIENT="/var/run/${CLIENT}.pid"
24 PATH="/sbin:/usr/sbin:/bin:/usr/bin"
26 # Load defaults
27 [ -r /etc/default/gosa-si ] && . /etc/default/gosa-si
29 # Load LSB support functions
30 . /lib/lsb/init-functions
33 start_client() {
34 start-stop-daemon --start --quiet --pidfile ${PIDFILE_CLIENT} --name ${CLIENT} --startas ${DAEMON_CLIENT} -- $DEBUG
35 }
38 start_server() {
39 start-stop-daemon --start --quiet --pidfile ${PIDFILE_SERVER} --name ${SERVER} --startas ${DAEMON_SERVER} -- $1 $DEBUG
40 }
43 stop_client() {
44 start-stop-daemon --stop --retry 5 --quiet --pidfile ${PIDFILE_CLIENT} --name ${CLIENT}
45 kill `ps -C gosa-si-client -o pid=` > /dev/null 2>&1
46 ! ps -C gosa-si-client -o pid= > /dev/null 2>&1
47 }
50 stop_server() {
51 start-stop-daemon --stop --retry 5 --quiet --pidfile ${PIDFILE_SERVER} --name ${SERVER}
52 kill `ps -C gosa-si-server -o pid=` > /dev/null 2>&1
53 ! ps -C gosa-si-server -o pid= > /dev/null 2>&1
54 }
57 case "$1" in
58 start) log_daemon_msg "Starting GOsa support infrastructure"
59 if [ -x ${DAEMON_SERVER} ]; then
60 log_progress_msg "daemon"
61 start_server
62 fi
63 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
64 log_progress_msg "client"
65 start_client
66 fi
67 log_end_msg $?
68 ;;
69 stop) log_daemon_msg "Stopping GOsa support infrastructure"
70 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
71 log_progress_msg "client"
72 stop_client
73 fi
74 if [ -x ${DAEMON_SERVER} ]; then
75 log_progress_msg "daemon"
76 stop_server
77 fi
78 log_end_msg $?
79 ;;
80 reload|force-reload|restart) log_daemon_msg "Restarting GOsa support infrastructure"
81 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
82 stop_client
83 fi
84 if [ -x ${DAEMON_SERVER} ]; then
85 stop_server
86 start_server
87 fi
88 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
89 start_client
90 fi
91 log_progress_msg "done"
92 log_end_msg $?
93 ;;
94 restart-client) log_daemon_msg "Restarting GOsa support infrastructure client"
95 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
96 stop_client
97 fi
98 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
99 start_client
100 fi
101 log_progress_msg "done"
102 log_end_msg $?
103 ;;
104 status)
105 status=0
106 pidofproc -p "${PIDFILE_SERVER}" "${DAEMON_SERVER}" >/dev/null || status="$?"
107 log_daemon_msg "Status of GOsa-si server" "${NAME}"
108 if [ "$status" = 0 ]; then
109 log_progress_msg "is running"
110 log_end_msg 0
111 else
112 log_progress_msg "is not running"
113 log_end_msg $status
114 fi
116 if [ "$START_CLIENT" = "1" -a -x ${DAEMON_CLIENT} ]; then
117 status=0
118 pidofproc -p "${PIDFILE_CLIENT}" "${DAEMON_CLIENT}" >/dev/null || status="$?"
119 log_daemon_msg "Status of GOsa-si client" "${NAME}"
120 if [ "$status" = 0 ]; then
121 log_progress_msg "is running"
122 log_end_msg 0
123 else
124 log_progress_msg "is not running"
125 log_end_msg $status
126 fi
127 fi
128 ;;
130 *) log_action_msg "Usage: /etc/init.d/gosa-si {start|stop|restart|restart-client|reload|force-reload|status}"
131 exit 2
132 ;;
133 esac
134 exit 0