Previously, the Red Hat init scripts used the $pidfile or $lockfile as a test for whether to restart the daemons. This caused condrestart to start the daemons even when they were not running, in cases where they had died or been killed without cleaning up the $pidfile/$lockfile.
This was reported by Ingvar Hagelund in Red Hat bug #480600. Signed-off-by: Todd Zullinger <[email protected]> --- conf/redhat/client.init | 7 ++++++- conf/redhat/server.init | 11 ++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/conf/redhat/client.init b/conf/redhat/client.init index bccb45c..401151c 100644 --- a/conf/redhat/client.init +++ b/conf/redhat/client.init @@ -67,6 +67,10 @@ rh_status() { status $statusopts $puppetd } +rh_status_q() { + rh_status >/dev/null 2>&1 +} + genconfig() { echo -n $"Generate configuration puppet: " $puppetd ${PUPPET_OPTS} ${PUPPET_EXTRA_OPTS} --genconfig @@ -86,7 +90,8 @@ case "$1" in reload ;; condrestart|try-restart) - [ -f "$pidfile" ] && restart + rh_status_q || exit 0 + restart ;; status) rh_status diff --git a/conf/redhat/server.init b/conf/redhat/server.init index 8f05387..4bc44b9 100644 --- a/conf/redhat/server.init +++ b/conf/redhat/server.init @@ -89,7 +89,7 @@ genconfig() { $PUPPETMASTER $PUPPETMASTER_OPTS --genconfig } -puppetmaster_status() { +rh_status() { if [ -n "$PUPPETMASTER_PORTS" ] && [ ${#puppetmaster_por...@]} -gt 1 ]; then for ((i=0; i<${#puppetmaster_por...@]}; i++)); do echo -en "Port ${PUPPETMASTER_PORTS[$i]}: " @@ -103,6 +103,10 @@ puppetmaster_status() { return $RETVAL } +rh_status_q() { + rh_status >/dev/null 2>&1 +} + case "$1" in start) start @@ -114,10 +118,11 @@ case "$1" in restart ;; condrestart) - [ -f "$lockfile" ] && restart + rh_status_q || exit 0 + restart ;; status) - puppetmaster_status + rh_status ;; genconfig) genconfig -- 1.6.4 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
