我使用ProcessBuilder
从Java程序在Linux上运行任意bash命令:
ProcessBuilder pb = new ProcessBuilder("setsid", "/bin/bash", "-c", command);
process = pb.start();
命令运行良好,但当我尝试用process.destroy()
杀死它们时,它们会继续运行。什么是杀死命令的最佳方法?
答案 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