[Duvida]Como parar um metodo Thread?

Olá, sou novo aqui, estou fazendo um programa que rode um ping -t em diversos IP’s, para a aplicação não travar abri uma Thread para o método e mandei executar, o sistema reconhece meu boolean (que setei True ou False, dependendo do estado) no entanto ele não interrompe ou para.

   public void runSystemCommand(String command, TextArea texto, Tooltip tip) {
        Thread thread = new Thread() {
            @Override
            public void run() {
                
                try {
                    if (!executando) {
                        Process p = Runtime.getRuntime().exec(command);
                        BufferedReader inputStream = new BufferedReader(
                                new InputStreamReader(p.getInputStream()));
                        String s = "";
                        texto.setWrapText(true);
                        texto.setText("\r\n");
                        executando = true;
                        // reading output stream of the command
                        while ((s = inputStream.readLine()) != null) {
                            texto.setText(texto.getText() + "\n" + s + "\n");
                            texto.setScrollTop(Double.MAX_VALUE);
                            if (texto.getText().length() > Integer.MAX_VALUE) {
                                gerarRelatorio(tip, texto);
                                texto.setText("");
                            }
                        }
                    } else if (executando) {
                        System.out.println("Interrompendo");
                        executando = false;
                        this.stop();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
        thread.start();
    }

No If e Else o sistema reconhece, mas não consigo dar thread.interrupt() ou thread.stop() pois pedi para inicializar a variavel thread. Se coloco This.stop ou this.interrupt(), simplesmente não faz nada. Alguem tem alguma luz?

Eu não sou especialista em thread, mas eu sei que para sair de um laço, você pode usar o break; e se eu não me engano também você deveria usar o thread.interrupt(); para exatamente interromper a execução. Porém como a sua variável de instancia está acima do contexto, eu não sei se o interrupt pode te ajudar…
Tenta rever seu código, criando uma classe que implementa Runnable e separa as responsabilidades de execução…
Tem um site legal que eu aprendi muito de Thread que vc pode encontrar uma pancada de exemplos bons, que é o Java2s…

No caso, o while não tem problema, consigo sair dele a qualquer momento quando eu lanço o evento no JAVAFX, tanto que ele me printa o ELSE: “Interrompendo” porém quando eu mando dar interrupt(), o comando não deveria parar de ser executado? E consequentemente o ping deveria parar de ser inserido no TextArea?

Vale lembrar que se eu passar a variável thread a qual instancio no inicio do metodo, ele não reconhece, então usei o “this.interrupt()” para tentar pausar esse processo.

O real problema é que quando eu executo
> Process p = Runtime.getRuntime().exec(command);

ele vai executar

ping 192.168.1.119 -t

mas como que irei pausar este ping? Pensei em dar interrupt() para parar a thread, mas não esta funcionando.
Ou sera que eu mando um comando pro CMD, para reconhecer o CTRL C ?