1#! /bin/sh 2# 3# sqlrelay This starts and stops SQL Relay. 4# 5# chkconfig: 345 85 15 6# description: SQL Relay 7# 8### BEGIN INIT INFO 9# Provides: sqlrelay 10# Required-Start: $local_fs $remote_fs $network $time 11# Required-Stop: $local_fs $remote_fs $network $time 12# Should-Start: $syslog 13# Should-Stop: $syslog 14# Default-Start: 2 3 4 5 15# Default-Stop: 0 1 6 16# Short-Description: SQL Relay 17### END INIT INFO 18# 19# PROVIDE: sqlrelay 20# REQUIRE: NETWORKING 21 22 23# define default message functions 24success() { 25 printf success 26} 27failure() { 28 printf failure 29} 30passed() { 31 printf passed 32} 33 34 35# override them with fancier ones if available 36if ( test -r "/etc/init.d/functions" ) 37then 38 . /etc/init.d/functions 39else 40 if ( test -r "/etc/rc.d/init.d/functions" ) 41 then 42 . /etc/rc.d/init.d/functions 43 fi 44fi 45 46 47# for BSD-ish systems, bail if sqlrelay isn't enabled in /etc/rc.conf 48BSD="no" 49PRINTACTION="yes" 50if ( test -r "/etc/rc.conf" ) 51then 52 53 BSD="yes" 54 55 # load subroutines to process /etc/rc.conf 56 . /etc/rc.conf 57 58 UNAME=`uname` 59 if ( test "$UNAME" = "OpenBSD" ) 60 then 61 62 PRINTACTION="no" 63 64 # on OpenBSD sqlrelay_flags=NO disables 65 if ( test "${sqlrelay_flags}" = "NO" -o \ 66 "${sqlrelay_flags}" = "No" -o \ 67 "${sqlrelay_flags}" = "no" ) 68 then 69 exit 0 70 fi 71 72 elif ( test "$UNAME" = "FreeBSD" ) 73 then 74 75 # on FreeBSD sqlrelay_enable=YES enables 76 if ( test "${sqlrelay_enable}" != "YES" -a \ 77 "${sqlrelay_enable}" != "Yes" -a \ 78 "${sqlrelay_enable}" != "yes" ) 79 then 80 exit 0 81 fi 82 83 else 84 85 # on NetBSD and Minix (and others) sqlrelay=YES enables 86 if ( test "${sqlrelay}" != "YES" -a \ 87 "${sqlrelay}" != "Yes" -a \ 88 "${sqlrelay}" != "yes" ) 89 then 90 exit 0 91 fi 92 fi 93fi 94 95 96# define paths 97prefix=@prefix@ 98sysconfdir=@sysconfdir@ 99localstatedir=@localstatedir@ 100tmpdir=${localstatedir}/sqlrelay/tmp 101 102 103# define lock directory 104lockdir=/tmp 105if ( test -w "/var/lock/subsys" ) 106then 107 lockdir=/var/lock/subsys 108elif ( test -w "/var/lock" ) 109then 110 lockdir=/var/lock 111fi 112 113 114# Add appropriate bin/lib paths 115if ( test "${prefix}" != "/usr" ) 116then 117 PATH=$PATH:${prefix}/bin 118 export PATH 119 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${prefix}/lib 120 export LD_LIBRARY_PATH 121fi 122 123 124# initialize return value 125RETVAL=0 126 127 128cleanup() { 129 for i in `ls ${tmpdir}/pids/* 2>/dev/null` 130 do 131 if ( test -r "$i" ) 132 then 133 PID=`cat $i` 134 if ( test -z "`ps -p $PID 2> /dev/null | grep sqlr-`" ) 135 then 136 echo "$PID is not sqlr! removing pidfile ..." 137 rm -f $i 138 fi 139 fi 140 done 141} 142 143start_sqlrelay() { 144 145 # print Starting if necessary 146 if ( test "$BSD" = "yes" -a "$PRINTACTION" = "yes" ) 147 then 148 printf "Starting" 149 fi 150 151 # on BSD, print: 152 # sqlrelay 153 # 154 # on non-BSD, print: 155 # Starting sqlrelay: success 156 if ( test "$BSD" = "yes" ) 157 then 158 printf " sqlrelay" 159 fi 160 161 sqlr-start 0<&- 1>&- 2>&- 162 RETVAL=$? 163 if ( test "$BSD" != "yes" ) 164 then 165 printf "Starting sqlrelay: " 166 if ( test $RETVAL -eq 0 ) 167 then 168 success 169 else 170 failure 171 fi 172 echo 173 fi 174 175 if ( test "$BSD" = "yes" ) 176 then 177 if ( test "$PRINTACTION" = "yes" ) 178 then 179 echo "." 180 fi 181 fi 182 183 if ( test $RETVAL -eq 0 ) 184 then 185 touch ${lockdir}/sqlrelay 186 fi 187 188 cleanup 189 190 return $RETVAL 191} 192 193stop_sqlrelay() { 194 195 # print Stopping if necessary 196 if ( test "$BSD" = "yes" -a "$PRINTACTION" = "yes" ) 197 then 198 printf "Stopping" 199 fi 200 201 # on BSD, print: 202 # sqlrelay 203 # 204 # on non-BSD, print: 205 # Stopping sqlrelay: success 206 if ( test "$BSD" = "yes" ) 207 then 208 printf " sqlrelay (" 209 fi 210 211 sqlr-stop 0<&- 1>&- 2>&- 212 RETVAL=$? 213 if ( test "$BSD" != "yes" ) 214 then 215 printf "Stopping sqlrelay: " 216 if ( test $RETVAL -eq 0 ) 217 then 218 success 219 else 220 failure 221 fi 222 echo 223 fi 224 225 if ( test "$BSD" = "yes" ) 226 then 227 if ( test "$PRINTACTION" = "yes" ) 228 then 229 echo "." 230 fi 231 fi 232 233 if ( test $RETVAL -eq 0 ) 234 then 235 rm -f ${lockdir}/sqlrelay 236 fi 237 238 cleanup 239 240 return $RETVAL 241} 242 243restart_sqlrelay() { 244 stop_sqlrelay 245 start_sqlrelay 246} 247 248condrestart_sqlrelay() { 249 if ( test -r "${lockdir}/sqlrelay" ) 250 then 251 restart_sqlrelay 252 fi 253 return 0 254} 255 256 257# See how we were called. 258case "$1" in 259 start) 260 start_sqlrelay 261 ;; 262 stop) 263 stop_sqlrelay 264 ;; 265 restart) 266 restart_sqlrelay 267 ;; 268 reload) 269 restart_sqlrelay 270 ;; 271 condrestart) 272 condrestart_sqlrelay 273 ;; 274 *) 275 if ( test -r "/etc/rc.subr" -o -r "/etc/rc.d/rc.subr" ) 276 then 277 # on BSD systems assume start 278 start_sqlrelay 279 else 280 # on others, print usage 281 echo "Usage: sqlrelay {start|stop|restart|condrestart}" 282 RETVAL=1 283 fi 284esac 285 286exit $RETVAL 287