blob: d7144d153989a4330febdf3be460af2bf9ae81d4 (
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/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 $initconfig_dir/@package_name@-$SERV_ID ] ; then
. $initconfig_dir/@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@:@pcre_libdir@
export LD_LIBRARY_PATH
SHLIB_PATH=$prefix$SERVER_DIR:$prefix@nss_libdir@:$prefix@libdir@:@nss_libdir@:@pcre_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`
rm -f $STARTPIDFILE
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@
while getopts "d:" flag
do
case "$flag" in
d) initconfig_dir="$OPTARG";;
esac
done
shift $(($OPTIND-1))
if [ "$initconfig_dir" = "" ]; then
if [ $USER = root ] ; then
initconfig_dir=@initconfigdir@
else
initconfig_dir=$HOME/.@package_name@
fi
fi
if [ "$#" -eq 0 ]; then
# We're starting all instances.
ret=0
for i in $initconfig_dir/@package_name@-*; do
regex=s,$initconfig_dir/@package_name@-,,g
inst=`echo $i | sed -e $regex`
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
|