aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorWangTaoTheTonic <barneystinson@aliyun.com>2015-02-13 10:27:23 +0000
committerSean Owen <sowen@cloudera.com>2015-02-13 10:27:23 +0000
commit1768bd51438670c493ca3ca02988aee3ae31e87e (patch)
tree9f400d11500679972ca3f244c1d57b1ff9808950 /sbin
parent1c8633f3fe9d814c83384e339b958740c250c00c (diff)
downloadspark-1768bd51438670c493ca3ca02988aee3ae31e87e.tar.gz
spark-1768bd51438670c493ca3ca02988aee3ae31e87e.tar.bz2
spark-1768bd51438670c493ca3ca02988aee3ae31e87e.zip
[SPARK-4832][Deploy]some other processes might take the daemon pid
Some other processes might use the pid saved in pid file. In that case we should ignore it and launch daemons. JIRA is down for maintenance. I will file one once it return. Author: WangTaoTheTonic <barneystinson@aliyun.com> Author: WangTaoTheTonic <wangtao111@huawei.com> Closes #3683 from WangTaoTheTonic/otherproc and squashes the following commits: daa86a1 [WangTaoTheTonic] some bash style fix 8befee7 [WangTaoTheTonic] handle the mistake scenario cf4ecc6 [WangTaoTheTonic] remove redundant condition f36cfb4 [WangTaoTheTonic] some other processes might take the pid
Diffstat (limited to 'sbin')
-rwxr-xr-xsbin/spark-daemon.sh20
1 files changed, 11 insertions, 9 deletions
diff --git a/sbin/spark-daemon.sh b/sbin/spark-daemon.sh
index 89608bc41b..ec6d0b5a40 100755
--- a/sbin/spark-daemon.sh
+++ b/sbin/spark-daemon.sh
@@ -129,8 +129,9 @@ case $option in
mkdir -p "$SPARK_PID_DIR"
if [ -f $pid ]; then
- if kill -0 `cat $pid` > /dev/null 2>&1; then
- echo $command running as process `cat $pid`. Stop it first.
+ TARGET_ID="$(cat "$pid")"
+ if [[ $(ps -p "$TARGET_ID" -o args=) =~ $command ]]; then
+ echo "$command running as process $TARGET_ID. Stop it first."
exit 1
fi
fi
@@ -141,7 +142,7 @@ case $option in
fi
spark_rotate_log "$log"
- echo starting $command, logging to $log
+ echo "starting $command, logging to $log"
if [ $option == spark-submit ]; then
source "$SPARK_HOME"/bin/utils.sh
gatherSparkSubmitOpts "$@"
@@ -154,7 +155,7 @@ case $option in
echo $newpid > $pid
sleep 2
# Check if the process has died; in that case we'll tail the log so the user can see
- if ! kill -0 $newpid >/dev/null 2>&1; then
+ if [[ ! $(ps -p "$newpid" -o args=) =~ $command ]]; then
echo "failed to launch $command:"
tail -2 "$log" | sed 's/^/ /'
echo "full log in $log"
@@ -164,14 +165,15 @@ case $option in
(stop)
if [ -f $pid ]; then
- if kill -0 `cat $pid` > /dev/null 2>&1; then
- echo stopping $command
- kill `cat $pid`
+ TARGET_ID="$(cat "$pid")"
+ if [[ $(ps -p "$TARGET_ID" -o args=) =~ $command ]]; then
+ echo "stopping $command"
+ kill "$TARGET_ID"
else
- echo no $command to stop
+ echo "no $command to stop"
fi
else
- echo no $command to stop
+ echo "no $command to stop"
fi
;;