In Red Hat bug #531116 Ruben Kerkhof noted that we weren't using the
--pidfile $pidfile option to daemon. This caused 'service puppet start'
to fail if puppet had already been started. To be consistent, we now
pass the pidfile option to daemon, killproc, and status when those
functions provide such an option. And we only test for the availability
of the -p/--pidfile option in one place.
---
I did test this one and it didn't eat any core puppet *bin scripts. ;)
And the reporter in bugzilla also tested and confirmed it worked well
for him. More eyes and testing are always welcome, of course.
It's on the fedora/bugzilla/531116-initscript-pidfile-opts branch at
git://jet.mox.net/~tmz/puppet.git.
conf/redhat/client.init | 17 ++++++++++-------
conf/redhat/server.init | 14 ++++++++++----
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/conf/redhat/client.init b/conf/redhat/client.init
index 0c98383..d995d92 100644
--- a/conf/redhat/client.init
+++ b/conf/redhat/client.init
@@ -27,8 +27,12 @@ PUPPET_OPTS=""
[ -n "$PUPPET_LOG" ] && PUPPET_OPTS="${PUPPET_OPTS} --logdest=${PUPPET_LOG}"
[ -n "$PUPPET_PORT" ] && PUPPET_OPTS="${PUPPET_OPTS}
--masterport=${PUPPET_PORT}"
-# Determine if we can use the -p option to killproc. RHEL < 5 can't.
-killproc | grep -q -- '-p' 2>/dev/null && killopts="-p $pidfile"
+# Determine if we can use the -p option to daemon, killproc, and status.
+# RHEL < 5 can't.
+if status | grep -q -- '-p' 2>/dev/null; then
+ daemonopts="--pidfile $pidfile"
+ pidopts="-p $pidfile"
+fi
# Figure out if the system just booted. Let's assume
# boot doesn't take longer than 5 minutes
@@ -37,7 +41,7 @@ killproc | grep -q -- '-p' 2>/dev/null && killopts="-p
$pidfile"
start() {
echo -n $"Starting puppet: "
- daemon $puppetd ${PUPPET_OPTS} ${PUPPET_EXTRA_OPTS}
+ daemon $daemonopts $puppetd ${PUPPET_OPTS} ${PUPPET_EXTRA_OPTS}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
@@ -46,7 +50,7 @@ start() {
stop() {
echo -n $"Stopping puppet: "
- killproc $killopts $puppetd
+ killproc $pidopts $puppetd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
@@ -54,7 +58,7 @@ stop() {
reload() {
echo -n $"Restarting puppet: "
- killproc $killopts $puppetd -HUP
+ killproc $pidopts $puppetd -HUP
RETVAL=$?
echo
return $RETVAL
@@ -66,8 +70,7 @@ restart() {
}
rh_status() {
- status | grep -q -- '-p' 2>/dev/null && statusopts="-p $pidfile"
- status $statusopts $puppetd
+ status $pidopts $puppetd
RETVAL=$?
return $RETVAL
}
diff --git a/conf/redhat/server.init b/conf/redhat/server.init
index 4f44206..2b39bc0 100644
--- a/conf/redhat/server.init
+++ b/conf/redhat/server.init
@@ -33,6 +33,13 @@ fi
PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} \
${PUPPETMASTER_EXTRA_OPTS}"
+# Determine if we can use the -p option to daemon, killproc, and status.
+# RHEL < 5 can't.
+if status | grep -q -- '-p' 2>/dev/null; then
+ daemonopts="--pidfile $pidfile"
+ pidopts="-p $pidfile"
+fi
+
RETVAL=0
prog=puppetmasterd
@@ -50,7 +57,7 @@ start() {
ret=$?; [ $ret != 0 ] && RETVAL=$ret
done
else
- daemon $PUPPETMASTER $PUPPETMASTER_OPTS
+ daemon $daemonopts $PUPPETMASTER $PUPPETMASTER_OPTS
RETVAL=$?
fi
else
@@ -72,8 +79,7 @@ stop() {
ret=$?; [ $ret != 0 ] && RETVAL=$ret
done
else
- killproc | grep -q -- '-p' 2>/dev/null && killopts="-p $pidfile"
- killproc $killopts $PUPPETMASTER
+ killproc $pidopts $PUPPETMASTER
RETVAL=$?
fi
echo
@@ -99,7 +105,7 @@ rh_status() {
ret=$?; [ $ret != 0 ] && RETVAL=$ret
done
else
- status $PUPPETMASTER
+ status $pidopts $PUPPETMASTER
RETVAL=$?
fi
return $RETVAL
--
1.6.6
--
Todd OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A vacuum is a hell of a lot better than some of the stuff that nature
replaces it with.
-- Tennessee Williams
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.