summaryrefslogtreecommitdiffstats
path: root/wrappers/initscript.in
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers/initscript.in')
-rw-r--r--wrappers/initscript.in9
1 files changed, 7 insertions, 2 deletions
diff --git a/wrappers/initscript.in b/wrappers/initscript.in
index d32c1ab1..9f4676fe 100644
--- a/wrappers/initscript.in
+++ b/wrappers/initscript.in
@@ -138,7 +138,10 @@ start() {
server_running=0
if [ -f $pidfile ]; then
pid=`cat $pidfile`
- if kill -0 $pid > /dev/null 2>&1 ; then
+ instlockfile="@localstatedir@/lock/@package_name@/slapd-$instance/server/$pid"
+ if kill -0 $pid && \
+ [ $(awk '{print $2}' /proc/$pid/stat) = "(ns-slapd)" ] \
+ > /dev/null 2>&1 ; then
echo_n " already running"
success; echo
successes=`expr $successes + 1`
@@ -146,7 +149,9 @@ start() {
else
echo " not running, but pid file exists"
echo_n " $instance... attempting to start anyway"
- rm -f $pidfile
+ # Clean up the instance lockfile since we know the pid. The
+ # pidfiles will get cleaned up below.
+ rm -f $instlockfile
fi
fi
server_started=0