在Linux中,当我在java.lang.Process对象上运行destroy函数(类型为true的java.lang.UNIXProcess)时,它会发送SIGTERM信号进行处理,有没有办法用SIGKILL杀死它?
不使用纯Java。
你最简单的选择是使用Runtime.exec()运行kill -9 <pid>的外部进程的命令。
Runtime.exec()
kill -9 <pid>
不幸的是,掌握PID并不是那么简单。您将需要使用反射黑魔法来访问该private int pid字段,或者弄乱该ps命令的输出。
private int pid
ps
更新 -实际上,还有另一种方法。创建一个小的实用程序(C程序,shell脚本等),它将运行真正的外部应用程序。对实用程序进行编码,以便它记住子进程的PID,并为SIGTERM设置信号处理程序,该信号处理程序将对子进程进行SIGKILL。