跑步&从Java中杀死一个Bash命令

时间:2017-03-06 23:17:16

标签: java linux bash process kill

我使用ProcessBuilder从Java程序在Linux上运行任意bash命令:

ProcessBuilder pb = new ProcessBuilder("setsid", "/bin/bash", "-c", command);
process = pb.start();

命令运行良好,但当我尝试用process.destroy()杀死它们时,它们会继续运行。什么是杀死命令的最佳方法?

1 个答案:

答案 0 :(得分:0)

编写一个 bash 脚本并从 Java 中运行它:

用于通过 bash 从 Java 运行程序:

运行.sh

#!/bin/bash
firefox # replace firefox by the program you like to start

按程序名杀:

kill.sh

#!/bin/bash
pkill -9 -x firefox # replace firefox by the program you like to kill

通过PID杀死程序:

kill.sh

#!/bin/bash
kill -9 $PID

你可以通过bash的follow方式通过程序启动来获取程序的PID:

firefox & $! # start the program and get the pid
echo $! # echo the pid of program

你可以通过bash通过他的名字得到一个已经运行的程序的PID:

pidof -x firefox
4561 # thats a sample of a output of a pid