From e52539b46fb13db423490fe02d46e9fae72d72fe Mon Sep 17 00:00:00 2001 From: Miklos Szegedi Date: Wed, 4 Apr 2018 15:35:58 -0700 Subject: [PATCH] HADOOP-14855. Hadoop scripts may errantly believe a daemon is still running, preventing it from starting. Contributed by Robert Kanter. --- .../hadoop-common/src/main/bin/hadoop-functions.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh index 9ea45873c09..9ef48b6fb78 100755 --- a/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh +++ b/hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh @@ -1725,11 +1725,16 @@ function hadoop_status_daemon shift local pid + local pspid if [[ -f "${pidfile}" ]]; then pid=$(cat "${pidfile}") - if ps -p "${pid}" > /dev/null 2>&1; then - return 0 + if pspid=$(ps -o args= -p"${pid}" 2>/dev/null); then + # this is to check that the running process we found is actually the same + # daemon that we're interested in + if [[ ${pspid} =~ -Dproc_${daemonname} ]]; then + return 0 + fi fi return 1 fi