Windows: use Boost 1.59, msvc 14.0
[metaproxy-moved-to-github.git] / rpm / metaproxy.init
1 #!/bin/bash
2 #
3 # metaproxy    Startup script for Metaproxy
4 #
5 # chkconfig: 2345 85 15
6 # description: Metaproxy SRU/Z39.50 router
7 # processname: metaproxy
8 # config: /etc/metaproxy/metaproxy.xml
9 # config: /etc/sysconfig/metaproxy
10 # pidfile: /var/run/metaproxy.pid
11
12 ### BEGIN INIT INFO
13 # Provides:            metaproxy
14 # Required-Start:      $local_fs $remote_fs $network
15 # Required-Stop:       $local_fs $remote_fs
16 # Default-Start:       3 5
17 # Default-Stop:        0 1 2 6
18 # Short-Description:   Controls the metaproxy daemon
19 # Description:         Controls the Metaproxy Z39.50/SRU router.
20 ### END INIT INFO
21
22
23 # start of compatibility layer for RedHat/SuSE init.d
24 #
25 # rc_status exist on SuSE. Provide dummy if unavailable
26 if test -f /etc/rc.status; then
27         . /etc/rc.status
28 else
29         rc_status() {
30                 r=$?
31                 echo ""
32                 return $r
33         }
34 fi
35
36 # functions exist on RedHat. Provide tiny subset if unavailable
37 if test -f /etc/rc.d/init.d/functions; then
38         . /etc/rc.d/init.d/functions
39 else
40         daemon() {
41                 pid_file=""
42                 while test $# -gt 0; do
43                         case $1 in
44                                 --pidfile)
45                                         pid_file=$2
46                                         shift 2
47                                         ;;
48                                 *)
49                                         break;
50                                         ;;
51                         esac
52                 done
53                 startproc -p $pid_file $*
54         }
55
56         killproc() {
57                 pid_file=""
58                 delay=10
59                 while test $# -gt 0; do
60                         case $1 in
61                                 -p)
62                                         pid_file=$2
63                                         shift 2
64                                         ;;
65                                 -d)
66                                         delay=$2
67                                         shift 2
68                                         ;;
69                                 *)
70                                         break;
71                                         ;;
72                         esac
73                 done
74                 /sbin/killproc -p $pid_file $*
75         }
76         status() {
77                 pid_file=""
78                 while test $# -gt 0; do
79                         case $1 in
80                                 -p)
81                                         pid_file=$2
82                                         shift 2
83                                         ;;
84                                 *)
85                                         break;
86                                         ;;
87                         esac
88                 done
89                 if test -f $pid_file && kill -0 `cat $pid_file`; then
90                         echo "$DAEMON `cat $pid_file` is running"
91                         return 0
92                 fi
93                 echo "$DAEMON is not running"
94                 return 1
95         }
96 fi
97 # end of compatibility layer for RedHat/SuSE
98
99 . /etc/metaproxy/metaproxy.user
100
101 OPTIONS="-u $SERVER_USER -l /var/log/metaproxy.log -c /etc/metaproxy/metaproxy.xml"
102
103 if [ -f /etc/sysconfig/metaproxy ]; then
104         . /etc/sysconfig/metaproxy
105 fi
106
107 DAEMON=${DAEMON-/usr/bin/metaproxy}
108 prog=metaproxy
109 pidfile=${PIDFILE-/var/run/metaproxy.pid}
110 lockfile=${LOCKFILE-/var/lock/subsys/metaproxy}
111 RETVAL=0
112
113 start() {
114         echo -n $"Starting $prog: "
115         daemon --pidfile ${pidfile} $DAEMON $OPTIONS -D -p ${pidfile}
116         rc_status -v
117         RETVAL=$?
118         [ $RETVAL = 0 ] && touch ${lockfile}
119         return $RETVAL
120 }
121
122 stop() {
123         echo -n $"Stopping $prog: "
124         killproc -p ${pidfile} -d 10 $DAEMON
125         rc_status -v
126         RETVAL=$?
127         [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
128 }
129
130 reload() {
131         echo -n $"Reloading $prog: "
132         $DAEMON $OPTIONS -t >/dev/null 2>&1
133         RETVAL=$?
134         if [ $RETVAL = 0 ]; then
135                 killproc -p ${pidfile} $DAEMON -USR1 >/dev/null 2>&1
136                 RETVAL=$?
137                 if [ $RETVAL = 0 ]; then
138                         i=0
139                         p=`cat ${pidfile}`
140                         while [ -d /proc/$p -a $i -lt 100 ]; do
141                                 i=`expr $i + 1`
142                                 usleep 50000
143                         done
144                         if [ -d /proc/$p ]; then
145                                 echo_failure
146                                 rc_status -v
147                                 RETVAL=1
148                         else
149                                 rm -f ${pidfile}
150                         fi
151                 else
152                         echo_failure
153                         rc_status -v
154                 fi
155         else
156                 echo_failure
157                 rc_status -v
158                 echo $"not reloading due to configuration syntax error"
159         fi
160         if [ $RETVAL = 0 ]; then
161                 daemon --pidfile ${pidfile} $DAEMON $OPTIONS -D -p ${pidfile}
162                 rc_status -v
163                 RETVAL=$?
164                 [ $RETVAL = 0 ] && touch ${lockfile}
165         fi
166         return $RETVAL
167 }
168
169 # See how we were called.
170 case "$1" in
171         start)
172                 start
173                 ;;
174         stop)
175                 stop
176                 ;;
177         status)
178                 status -p ${pidfile} $DAEMON
179                 RETVAL=$?
180                 ;;
181         restart)
182                 stop
183                 start
184                 ;;
185         condrestart)
186                 if [ -f ${pidfile} ] ; then
187                         stop
188                         start
189                 fi
190                 ;;
191         reload)
192                 if [ -f ${pidfile} ] ; then
193                         reload
194                 fi
195                 ;;
196         configtest)
197                 $DAEMON $OPTIONS -t
198                 RETVAL=$?
199                 ;;
200         *)
201                 echo $"Usage: $prog {start|stop|restart|help|configtest}"
202                 exit 1
203 esac
204
205 exit $RETVAL
206 # Local Variables:
207 # mode:shell-script
208 # sh-indentation: 8
209 # sh-basic-offset: 8
210 # End: