From ab16cd41c5aeae7e468c16e870eda8d7dcafa52f Mon Sep 17 00:00:00 2001 From: gongdewei Date: Tue, 18 Aug 2020 21:01:20 +0800 Subject: [PATCH] check telnet port before connect telnet server --- bin/as.sh | 3 ++- boot/src/main/java/com/taobao/arthas/boot/Bootstrap.java | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bin/as.sh b/bin/as.sh index 54a1d5a4d..a2bc0be39 100755 --- a/bin/as.sh +++ b/bin/as.sh @@ -984,9 +984,10 @@ main() echo "Attach success." - if [ ${ATTACH_ONLY} = false ]; then + if [ ${ATTACH_ONLY} = false ] and [ $TELNET_PORT > 0 ]; then active_console "${ARTHAS_HOME}" fi + } diff --git a/boot/src/main/java/com/taobao/arthas/boot/Bootstrap.java b/boot/src/main/java/com/taobao/arthas/boot/Bootstrap.java index 387bbc3be..3cf5e546e 100644 --- a/boot/src/main/java/com/taobao/arthas/boot/Bootstrap.java +++ b/boot/src/main/java/com/taobao/arthas/boot/Bootstrap.java @@ -473,8 +473,10 @@ public class Bootstrap { AnsiLog.info("The target process already listen port {}, skip attach.", bootstrap.getTelnetPort()); } else { //double check telnet port and pid before attach - telnetPortPid = findProcessByTelnetClient(arthasHomeDir.getAbsolutePath(), bootstrap.getTelnetPort()); - checkTelnetPortPid(bootstrap, telnetPortPid, pid); + if (bootstrap.getTelnetPort() > 0) { + telnetPortPid = findProcessByTelnetClient(arthasHomeDir.getAbsolutePath(), bootstrap.getTelnetPort()); + checkTelnetPortPid(bootstrap, telnetPortPid, pid); + } // start arthas-core.jar List attachArgs = new ArrayList(); @@ -521,7 +523,7 @@ public class Bootstrap { AnsiLog.info("Attach process {} success.", pid); } - if (bootstrap.isAttachOnly()) { + if (bootstrap.isAttachOnly() || bootstrap.getTelnetPort() <= 0) { System.exit(0); }