]>
Commit | Line | Data |
---|---|---|
ae236ccc AM |
1 | #!/bin/sh |
2 | # | |
3 | # asterix This shell script takes care of starting and stopping | |
4 | # callweaver PBX | |
5 | # | |
6 | # chkconfig: 345 90 25 | |
7 | # | |
8 | # description: callweaver is an Open Source PBX and telephony development platform that \ \ | |
9 | # can both replace a conventional PBX and act as a platform for \ | |
10 | # developing custom telephony applications for delivering dynamic \ | |
11 | # content over a telephone similarly to how one can deliver dynamic \ | |
12 | # content through a web browser using CGI and a web server. | |
13 | # | |
14 | # pidfile: /var/run/callweaver.pid | |
15 | # config: /etc/callweaver/callweaver.conf | |
16 | ||
17 | ||
18 | # Source function library | |
19 | . /etc/rc.d/init.d/functions | |
20 | ||
21 | # Get network config | |
22 | . /etc/sysconfig/network | |
23 | ||
ef25bfb1 AM |
24 | |
25 | CALLWEAVER_REALTIME=yes | |
26 | CALLWEAVER_SAFE=no | |
27 | ||
28 | ||
ae236ccc AM |
29 | # Get service config |
30 | [ -f /etc/sysconfig/callweaver ] && . /etc/sysconfig/callweaver | |
31 | ||
32 | # Check that networking is up. | |
33 | if is_yes "${NETWORKING}"; then | |
34 | if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then | |
35 | msg_network_down callweaver | |
36 | exit 1 | |
37 | fi | |
38 | else | |
39 | exit 0 | |
40 | fi | |
41 | ||
ef25bfb1 AM |
42 | REALDAEMON=/usr/sbin/callweaver |
43 | if is_yes "$CALLWEAVER_SAFE"; then | |
44 | DAEMON=/usr/sbin/safe_callweaver | |
45 | else | |
46 | DAEMON=/usr/sbin/callweaver | |
47 | fi | |
48 | ||
49 | if ! is_yes "$CALLWEAVER_REALTIME"; then | |
50 | CALLWEAVER_OPT="$CALLWEAVER_OPT -p" | |
51 | fi | |
52 | ||
53 | RETVAL=0 | |
54 | # See how we were called. | |
41a119b5 | 55 | start() { |
ae236ccc AM |
56 | # Check if the service is already running? |
57 | if [ ! -f /var/lock/subsys/callweaver ]; then | |
58 | msg_starting callweaver | |
ef25bfb1 | 59 | daemon $DAEMON -U callweaver -G callweaver $CALLWEAVER_OPT |
ae236ccc AM |
60 | RETVAL=$? |
61 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/callweaver | |
62 | else | |
63 | msg_already_running callweaver | |
64 | fi | |
41a119b5 ER |
65 | } |
66 | ||
67 | stop() { | |
ae236ccc AM |
68 | # Stop daemons. |
69 | if [ -f /var/lock/subsys/callweaver ]; then | |
70 | msg_stopping callweaver | |
9f410b75 | 71 | daemon $REALDAEMON -rx 'stop now' |
ef25bfb1 AM |
72 | sleep 2 |
73 | # make sure it's dead | |
9f410b75 | 74 | killproc callweaver -KILL > /dev/null 2>&1 |
ae236ccc AM |
75 | rm -f /var/lock/subsys/callweaver >/dev/null 2>&1 |
76 | else | |
77 | msg_not_running callweaver | |
78 | fi | |
41a119b5 ER |
79 | } |
80 | ||
81 | RETVAL=0 | |
82 | # See how we were called. | |
83 | case "$1" in | |
84 | start) | |
85 | start | |
86 | ;; | |
87 | stop) | |
88 | stop | |
ae236ccc AM |
89 | ;; |
90 | restart|force-reload) | |
41a119b5 ER |
91 | stop |
92 | start | |
ae236ccc AM |
93 | ;; |
94 | reload) | |
95 | if [ -f /var/lock/subsys/callweaver ]; then | |
ef25bfb1 AM |
96 | msg_reloading "callweaver configuration" |
97 | daemon $DAEMON -rx 'reload' | |
98 | # these AFAIK are also reloaded by -rx reload | |
99 | # msg_reloading "callweaver logger" | |
100 | # daemon $DAEMON -rx 'logger reload' | |
101 | # msg_reloading "callweaver extensions" | |
102 | # daemon $DAEMON -rx 'extensions reload' | |
ae236ccc AM |
103 | RETVAL=$? |
104 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/callweaver | |
105 | ok | |
106 | else | |
107 | msg_not_running callweaver | |
108 | exit 1 | |
109 | fi | |
110 | ;; | |
2cbafbca AM |
111 | logger-reload) |
112 | $DAEMON -rx 'logger reload' | |
113 | ;; | |
ae236ccc AM |
114 | status) |
115 | status callweaver | |
116 | exit $? | |
117 | ;; | |
118 | *) | |
119 | msg_usage "$0 {start|stop|restart|force-reload|status}" | |
120 | exit 3 | |
121 | esac | |
122 | ||
123 | exit $RETVAL |