blob: fb9bfdb08553a9659b44a289200f271cbaa97cb7 (
plain)
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
|
#!/bin/sh
# Script that starts the ns-slapd server.
# Exit status can be:
# 0: Server started successfully
# 1: Server could not be started
# 2: Server already running
# Starts a single instance
start_instance() {
# The first argument is the server ID. Anything
# after that is an argument to ns-slapd.
SERV_ID=$1
shift
# source env. for this instance
if [ -f @initconfigdir@/@package_name@-$SERV_ID ] ; then
. @initconfigdir@/@package_name@-$SERV_ID
else
echo Instance $SERV_ID not found.
return 1
fi
prefix="$DS_ROOT"
LD_LIBRARY_PATH=$prefix$SERVER_DIR:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
export LD_LIBRARY_PATH
SHLIB_PATH=$prefix$SERVER_DIR:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@
export SHLIB_PATH
DS_CONFIG_DIR=$CONFIG_DIR
export DS_CONFIG_DIR
PIDFILE=$RUN_DIR/$PRODUCT_NAME-$SERV_ID.pid
STARTPIDFILE=$RUN_DIR/$PRODUCT_NAME-$SERV_ID.startpid
if test -f $STARTPIDFILE ; then
PID=`cat $STARTPIDFILE`
if kill -0 $PID > /dev/null 2>&1 ; then
echo There is an ns-slapd process already running: $PID
return 2;
else
rm -f $STARTPIDFILE
fi
fi
if test -f $PIDFILE ; then
PID=`cat $PIDFILE`
if kill -0 $PID > /dev/null 2>&1 ; then
echo There is an ns-slapd running: $PID
return 2;
else
rm -f $PIDFILE
fi
fi
cd $SERVERBIN_DIR; ./ns-slapd -D $CONFIG_DIR -i $PIDFILE -w $STARTPIDFILE "$@"
if [ $? -ne 0 ]; then
return 1
fi
loop_counter=1
# wait for 10 seconds for the start pid file to appear
max_count=${STARTPID_TIME:-10}
while test $loop_counter -le $max_count; do
loop_counter=`expr $loop_counter + 1`
if test ! -f $STARTPIDFILE ; then
sleep 1;
else
PID=`cat $STARTPIDFILE`
fi
done
if test ! -f $STARTPIDFILE ; then
echo Server failed to start !!! Please check errors log for problems
return 1
fi
loop_counter=1
# wait for 10 minutes (600 times 1 seconds)
max_count=${PID_TIME:-600}
while test $loop_counter -le $max_count; do
loop_counter=`expr $loop_counter + 1`
if test ! -f $PIDFILE ; then
if kill -0 $PID > /dev/null 2>&1 ; then
sleep 1
else
echo Server failed to start !!! Please check errors log for problems
return 1
fi
else
PID=`cat $PIDFILE`
return 0;
fi
done
echo Server not running!! Failed to start ns-slapd process. Please check the errors log for problems.
return 1
}
# source env. for all instances
[ -f @initconfigdir@/@package_name@ ] && . @initconfigdir@/@package_name@
if [ "$#" -eq 0 ]; then
# We're starting all instances.
ret=0
for i in @initconfigdir@/@package_name@-*; do
inst=`echo $i | sed -e 's,@initconfigdir@/@package_name@-,,g'`
echo Starting instance \"$inst\"
start_instance $inst
if [ "$?" -ne 0 ]; then
ret=$?
fi
done
exit $ret
else
# We're starting a single instance.
start_instance $*
exit $?
fi
|