1 |
#!/bin/sh |
2 |
# |
3 |
# chkconfig: 345 95 5 |
4 |
# description: Starts and stops the HylaFAX server and queue manager \ |
5 |
# used to provide FAX services |
6 |
# |
7 |
|
8 |
### BEGIN INIT INFO |
9 |
# Provides: hylafax |
10 |
# Required-Start: $local_fs $network $syslog |
11 |
# Should-Start: hfaxd faxd |
12 |
# Required-Stop: |
13 |
# Default-Start: 3 4 5 |
14 |
# Default-Stop: 0 1 2 6 |
15 |
# Short-Description: Starts and stops the HylaFAX |
16 |
# Description: Starts and stops the HylaFAX server and queue manager \ |
17 |
# used to provide FAX services |
18 |
### END INIT INFO |
19 |
|
20 |
return_success= |
21 |
return_failure= |
22 |
|
23 |
# Source function library. |
24 |
if [ -f /etc/init.d/functions ] ; then |
25 |
. /etc/init.d/functions |
26 |
alias START_DAEMON=daemon |
27 |
alias STATUS=status |
28 |
alias ACTION=action |
29 |
elif [ -f /etc/rc.d/init.d/functions ] ; then |
30 |
. /etc/rc.d/init.d/functions |
31 |
alias START_DAEMON=daemon |
32 |
alias STATUS=status |
33 |
alias ACTION=action |
34 |
elif [ -f /lib/lsb/init-functions ]; then |
35 |
. /lib/lsb/init-functions |
36 |
alias START_DAEMON=start_daemon |
37 |
alias STATUS=suse_status |
38 |
alias ACTION=suse_action |
39 |
return_success=$rc_done |
40 |
return_failure=$rc_failed |
41 |
else |
42 |
exit 0 |
43 |
fi |
44 |
|
45 |
|
46 |
# HylaFAX spool directory |
47 |
if [ -d /var/spool/hylafax ]; then |
48 |
SPOOL=/var/spool/hylafax |
49 |
else |
50 |
SPOOL=/var/spool/fax |
51 |
fi |
52 |
|
53 |
HFAXD_ARGS= |
54 |
FAXQ_ARGS= |
55 |
|
56 |
# Source HylaFAX init script configuration |
57 |
if [ -f /etc/sysconfig/hylafax ] ; then |
58 |
. /etc/sysconfig/hylafax |
59 |
fi |
60 |
|
61 |
# Put Extra args first as some may be needed before ports parameters |
62 |
if [ -n "$HFAXD_EXTRA_ARGS" ] ; then |
63 |
HFAXD_ARGS=$HFAXD_EXTRA_ARGS |
64 |
fi |
65 |
|
66 |
# Bind to a specific address |
67 |
if [ -n "$HFAXD_LISTEN" ] ; then |
68 |
HFAXD_ARGS="$HFAXD_ARGS -l $HFAXD_LISTEN" |
69 |
fi |
70 |
|
71 |
if [ "$HFAXD_OLD_PROTOCOL" = "yes" ] ; then |
72 |
HFAXD_ARGS="$HFAXD_ARGS -o 4557" |
73 |
fi |
74 |
|
75 |
if [ -f "$SPOOL/etc/pagermap" ] ; then |
76 |
HFAXD_ARGS="$HFAXD_ARGS -s snpp" |
77 |
fi |
78 |
|
79 |
HFAXD_ARGS="$HFAXD_ARGS -i hylafax" |
80 |
|
81 |
if [ "$SPOOL" != "/var/spool/hylafax" ] ; then |
82 |
HFAXD_ARGS="$HFAXD_ARGS -q $SPOOL" |
83 |
FAXQ_ARGS="$FAXQ_ARGS -q $SPOOL" |
84 |
fi |
85 |
|
86 |
start() { |
87 |
check_config || exit 1 |
88 |
|
89 |
echo -n "Starting HylaFAX queue manager (faxq): " |
90 |
START_DAEMON /usr/sbin/faxq |
91 |
RETVAL=$? |
92 |
if [ $RETVAL -eq 0 ]; then |
93 |
echo -e $return_success |
94 |
else |
95 |
echo -e $return_failure |
96 |
fi |
97 |
|
98 |
echo -n "Starting HylaFAX server (hfaxd): " |
99 |
START_DAEMON /usr/sbin/hfaxd $HFAXD_ARGS |
100 |
RETVAL2=$? |
101 |
if [ $RETVAL2 -eq 0 ]; then |
102 |
echo -e $return_success |
103 |
else |
104 |
echo -e $return_failure |
105 |
fi |
106 |
|
107 |
reset_faxgetty |
108 |
|
109 |
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && \ |
110 |
touch /var/lock/subsys/hylafax || RETVAL=1 |
111 |
return $RETVAL |
112 |
} |
113 |
|
114 |
stop() { |
115 |
ACTION "Shutting down HylaFAX queue manager (faxq): " /usr/sbin/faxquit |
116 |
RETVAL=$? |
117 |
|
118 |
echo -n "Shutting down HylaFAX server (hfaxd): " |
119 |
killproc hfaxd |
120 |
RETVAL2=$? |
121 |
if [ $RETVAL2 -eq 0 ]; then |
122 |
echo -e $return_success |
123 |
else |
124 |
echo -e $return_failure |
125 |
fi |
126 |
|
127 |
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && \ |
128 |
rm -f /var/lock/subsys/hylafax || RETVAL=1 |
129 |
return $RETVAL |
130 |
} |
131 |
|
132 |
restart() { |
133 |
stop |
134 |
start |
135 |
} |
136 |
|
137 |
suse_action() { |
138 |
echo -n $1 |
139 |
$2 |
140 |
RETVAL=$? |
141 |
if [ $RETVAL -eq 0 ]; then |
142 |
echo -e $return_success |
143 |
else |
144 |
echo -e $return_failure |
145 |
fi |
146 |
return $RETVAL |
147 |
} |
148 |
|
149 |
suse_status() { |
150 |
checkproc $1 |
151 |
rc_status -v |
152 |
} |
153 |
|
154 |
hfstatus() { |
155 |
echo -n "HylaFAX client-server protocol server: " |
156 |
STATUS hfaxd |
157 |
echo -n "HylaFAX queue manager process: " |
158 |
STATUS faxq |
159 |
} |
160 |
|
161 |
check_config() { |
162 |
test -f $SPOOL/etc/setup.cache || { |
163 |
cat<<-EOF |
164 |
|
165 |
HylaFAX FATAL ERROR: $SPOOL/etc/setup.cache is missing! |
166 |
|
167 |
The file $SPOOL/etc/setup.cache is not present. |
168 |
This probably means the machine has not been setup using the |
169 |
faxsetup(8C) command. Read the documentation on setting up |
170 |
HylaFAX before you startup a server system. |
171 |
|
172 |
EOF |
173 |
|
174 |
exit 1 |
175 |
} |
176 |
} |
177 |
|
178 |
reset_faxgetty () { |
179 |
pids=`pidofproc faxgetty` |
180 |
if [ -n "$pids" ] && ps h $pids >/dev/null 2>&1; then |
181 |
echo -n "Restarting HylaFAX modem manager (faxgetty):" |
182 |
# will be respawned from /etc/inittab |
183 |
killproc faxgetty |
184 |
if [ $? -eq 0 ]; then |
185 |
echo -e $return_success |
186 |
else |
187 |
echo -e $return_failure |
188 |
fi |
189 |
fi |
190 |
} |
191 |
|
192 |
case "$1" in |
193 |
start) |
194 |
start |
195 |
;; |
196 |
stop) |
197 |
stop |
198 |
;; |
199 |
status) |
200 |
hfstatus |
201 |
;; |
202 |
restart|reload) |
203 |
restart |
204 |
;; |
205 |
condrestart) |
206 |
[ -f /var/lock/subsys/hylafax ] && restart |
207 |
;; |
208 |
*) |
209 |
echo "Usage: $0 {start|stop|status|restart|reload|condrestart}" |
210 |
exit 1 |
211 |
;; |
212 |
esac |
213 |
|
214 |
exit $? |
215 |
|