File: rfiod.scripts

package info (click to toggle)
lfc-postgres 1.7.4.7-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 13,676 kB
  • ctags: 10,779
  • sloc: ansic: 146,136; sh: 13,176; perl: 11,142; python: 5,529; cpp: 5,113; sql: 1,790; makefile: 861; fortran: 113
file content (275 lines) | stat: -rwxr-xr-x 7,842 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
#!/bin/sh
#
# rfiod         Start/Stop rfiod.
#
# chkconfig: 2345 92 18
# description: RFIO server daemon
#
### BEGIN INIT INFO
# Provides:          rfiod
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: RFIO server daemon
# Description:       RFIO server daemon
### END INIT INFO
#
# $Id: rfiod.scripts 3179 2010-02-18 09:14:57Z baud $
#
# @(#)$RCSfile: rfiod.scripts,v $ $Revision: 3179 $ $Date: 2010-02-18 10:14:57 +0100 (Thu, 18 Feb 2010) $ CERN/IT/ADC/CA Jean-Damien Durand
#

GRIDMAPDIR=/etc/grid-security/gridmapdir
export GRIDMAPDIR
LD_LIBRARY_PATH=/opt/lcg/lib:/opt/glite/lib:/opt/globus/lib
export LD_LIBRARY_PATH
CSEC_MECH=ID
export CSEC_MECH
CSEC_NOTHREAD=1
export CSEC_NOTHREAD
RFIO_PORT_RANGE="20000 25000"
export RFIO_PORT_RANGE
RFIOLOGFILE=/var/log/rfio/log

sysname=`uname -s`

# source function library
if [ -r /etc/rc.d/init.d/functions ]; then
    . /etc/rc.d/init.d/functions
    DAEMON=daemon
    FAILURE=failure
    ECHO_FAILURE=failure
    SUCCESS=success
    ECHO_SUCCESS=echo_success
    ECHO_END=echo
    if [ $sysname = "Linux" ]; then
        ECHOOPT=-n
    fi
else
    DAEMON=eval
    FAILURE=
    ECHO_FAILURE=
    SUCCESS=
    ECHO_SUCCESS=
    ECHOOPT=
    ECHO_END=
fi

RETVAL=0
prog="rfiod"
NOMORERFIO=/etc/operator/nomorerfio
PIDFILE=/var/run/rfiod.pid
PIDDIR=/var/run
SUBSYS=/var/lock/subsys/rfiod
SUBSYSDIR=/var/lock/subsys
[ -z "$SILENTSTOP" ] && SILENTSTOP=0
RFIOD=/opt/lcg/bin/rfiod
OPTIONS="-sl"
if [ -r /opt/lcg/etc/rfiod.conf ]; then
    SYSCONFIGRFIOD=/opt/lcg/etc/rfiod.conf
elif [ -r /etc/sysconfig/rfiod ]; then
    SYSCONFIGRFIOD=/etc/sysconfig/rfiod
elif [ -r /etc/default/rfiod ]; then
    SYSCONFIGRFIOD=/etc/default/rfiod
fi

#
## Blindly attempt to create useful directories
#
# [ ! -d $PIDDIR ] && mkdir -p $PIDDIR > /dev/null 2>&1
# [ ! -d $SUBSYSDIR ] && mkdir -p $SUBSYSDIR > /dev/null 2>&1

if [ $sysname = "HP-UX" ]; then
    export UNIX95=1
fi
if [ $sysname = "SunOS" ]; then
    format4comm="fname"
elif [ $sysname = "Darwin" ]; then
    format4comm="ucomm"
else
    format4comm="comm"
fi

case "$1" in
  start)
    echo $ECHOOPT "Starting $prog: "
    if [ -f ${NOMORERFIO} ]; then
        echo $ECHOOPT "${NOMORERFIO} exists: "
        [ -n "$ECHO_SUCCESS" ] && $ECHO_SUCCESS "${NOMORERFIO} exists: "
        RETVAL=0
    else
        if [ $sysname = "Linux" -a `whoami` = "root" ]; then
            netstat -ap | egrep '\*:5001|\*:rfio' | grep LISTEN | grep rfiod > /dev/null
        else
            netstat -a  | egrep '\*[:.]5001|\*[:.]rfio' | egrep 'LISTEN *$' > /dev/null
        fi
        # ps -eo ppid,$format4comm | egrep '^[ \t]+1 rfiod' > /dev/null
        if [ $? -eq 0 ]; then
            echo $ECHOOPT "rfiod already started: "
            [ -n "$ECHO_SUCCESS" ] && $ECHO_SUCCESS "rfiod already started: "
            RETVAL=0
        else
            if [ -n "$SYSCONFIGRFIOD" ]; then
                #
                ## Source the configuration
                #
                . $SYSCONFIGRFIOD
                export DPNS_HOST
                if [ "${RUN_RFIOD}" != "yes" ]; then
                    echo $ECHOOPT "$SYSCONFIGRFIOD says NO: "
                    [ -n "$ECHO_SUCCESS" ] && $ECHO_SUCCESS "$SYSCONFIGRFIOD says NO: "
                    RETVAL=0
                    $ECHO_END
                    exit $RETVAL
                fi
                if [ -n "${ULIMIT_N}" ]; then
                    ulimit -n ${ULIMIT_N}
                fi
            fi
            if [ $RETVAL -eq 0 ]; then
                cd /
                mkdir -p `dirname $RFIOLOGFILE`
                touch $RFIOLOGFILE
                $DAEMON $RFIOD $OPTIONS -f $RFIOLOGFILE
                if [ $? -eq 0 ]; then
                    [ -d $SUBSYSDIR ] && touch $SUBSYS
                    if [ -d $PIDDIR ]; then
                        pid=`ps -eo pid,ppid,$format4comm | grep " 1 rfiod$" | awk '{print $1}'`
                        # The point of $PIDFILE is that it kills only
                        # the master daemon.
                        rm -f $PIDFILE
                        echo $pid > $PIDFILE
                    fi
                    RETVAL=0
                else
                    echo $ECHOOPT "rfiod not started: "
                    [ -n "$FAILURE" ] && $FAILURE "rfiod not started: "
                    RETVAL=1
                fi
            fi
        fi
    fi
    $ECHO_END
    ;;
  stop)
    if [ -f $PIDFILE ]; then
        [ $SILENTSTOP -eq 0 ] && echo $ECHOOPT "Stopping $prog: "
        #
        ## We just attempt to kill the main daemon
        ## Remaining child are allowed to continue transfer up to
        ## the end
        #
        if [ $SILENTSTOP -eq 0 ]; then
            kill -9 `cat $PIDFILE`
        else
            kill -9 `cat $PIDFILE` > /dev/null 2>&1
        fi
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            rm -f $PIDFILE
        fi
    else
        # rfio might have been started by hand
        pid=`ps -eo pid,ppid,$format4comm | grep " 1 rfiod$" | awk '{print $1}'`
        if [ -n "$pid" ]; then
            [ $SILENTSTOP -eq 0 ] && echo $ECHOOPT "Stopping $prog: "
            #
            ## We just attempt to kill the main daemon
            ## Remaining child are allowed to continue transfer up to
            ## the end
            #
            if [ $SILENTSTOP -eq 0 ]; then
                kill -9 $pid
            else
                kill -9 $pid > /dev/null 2>&1
            fi
            RETVAL=$?
        else
            [ $SILENTSTOP -eq 0 ] && echo $ECHOOPT "rfiod already stopped: "
            [ $SILENTSTOP -eq 0 -a -n "$ECHO_SUCCESS" ] && $ECHO_SUCCESS "rfiod already stopped: "
            RETVAL=0
        fi
    fi
    if [ $SILENTSTOP -eq 0 -a $sysname = "Linux" ]; then
        if [ $RETVAL -eq 0 ]; then
            $ECHO_SUCCESS
        else
            $ECHO_FAILURE
        fi
    fi

    [ -d $SUBSYSDIR ] && rm -f $SUBSYS
    [ $SILENTSTOP -eq 0 -a -n "$ECHO_END" ] && $ECHO_END
    #
    ## Basically: if SILENTSTOP is not 0 when we never print something
    ## But if the stop is successful... One might want to see stop: OK
    ## anyway ?
    #
    if [ $SILENTSTOP -ne 0 -a $RETVAL -eq 0 ]; then
        echo $ECHOOPT "Stopping $prog: "
        [ $sysname = "Linux" ] && $ECHO_SUCCESS
        [ -n "$ECHO_END" ] && $ECHO_END
    fi
    ;;
  restart | force-reload)
    $0 stop
    if [ $? -eq 0 -o $SILENTSTOP -eq 0 ]; then
        $0 start
        RETVAL=$?
    else
        #
        ## It is legal to return zero it if was
        ## a conditional restart
        #
        if [ $SILENTSTOP -eq 0 ]; then
            RETVAL=1
        else
            RETVAL=0
        fi
    fi
    ;;
  condrestart | try-restart)
    SILENTSTOP=1
    export SILENTSTOP
    $0 restart
    RETVAL=$?
    ;;
  reload)
    ;;
  status)
    pid=`ps -eo pid,ppid,$format4comm | grep " 1 rfiod$" | awk '{print $1}'`
    if [ -n "$pid" ]; then
        echo $ECHOOPT "rfiod (pid $pid) is running..."
        $ECHO_SUCCESS
        $ECHO_END
        RETVAL=0
    else
        if [ -f $PIDFILE ]; then
            pid=`head -1 $PIDFILE`
            if [ "$pid" != "" ] ; then
                echo $ECHOOPT "rfiod dead but pid file exists"
                $ECHO_FAILURE
                $ECHO_END
                RETVAL=1
            fi
        else
            if [ -f $SUBSYS ]; then
                echo $ECHOOPT "rfiod dead but subsys ($SUBSYS) locked"
                RETVAL=2
            else
                echo $ECHOOPT "rfiod is stopped"
                RETVAL=3
            fi
            $ECHO_FAILURE
            $ECHO_END
        fi
    fi
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|condrestart}"
    RETVAL=1
    ;;
esac

exit $RETVAL