diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/TopCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/TopCLI.java index 79b1406ed18..6cb2902f71a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/TopCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/TopCLI.java @@ -91,6 +91,7 @@ private String CHANGE_BACKGROUND = "\u001b[7m"; private String RESET_BACKGROUND = "\u001b[0m"; private String SET_CURSOR_LINE_7_COLUMN_0 = "\u001b[7;0f"; + private static final String CLEAR_SCREEN = "\033[H\033[2J"; // guava cache for getapplications call protected Cache> @@ -443,6 +444,7 @@ public TopCLI() throws IOException, InterruptedException { } public static void main(String[] args) throws Exception { + addShutdownHook(); TopCLI topImp = new TopCLI(); topImp.setSysOutPrintStream(System.out); topImp.setSysErrPrintStream(System.err); @@ -492,7 +494,6 @@ public int run(String[] args) throws Exception { rmStartTime = getRMStartTime(); } } - clearScreen(); return 0; } @@ -1220,4 +1221,12 @@ private String getCommandOutput(String[] command) throws IOException, byte[] output = IOUtils.toByteArray(p.getInputStream()); return new String(output, "ASCII"); } + + private static void addShutdownHook() { + //clear screen when the program exits + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + System.out.print(CLEAR_SCREEN); + System.out.flush(); + })); + } }