gpt4 book ai didi

java - 如何使用 Java 中断 Linux 进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:00 24 4
gpt4 key购买 nike

我有一个进程生成器,可以让一些进程在 linux 中工作(此代码由 java 编写)但在这些进程工作期间我想进行一些中断以更改进程配置。

如果我使用假脱机方法,它有太多溢出所以我想使用另一种方法对其他进程进行一些中断。

最佳答案

由于@Vlad 链接的答案是针对 Windows 的,而这个问题是针对 linux 的,所以这里有一个答案。 Linux uses signals to interrupt processes , 你可以使用 kill 来发送一个信号:

// shut down process with id 123 (can be ignored by the process)
Runtime.getRuntime().exec("kill 123");
// shut down process with id 123 (can not be ignored by the process)
Runtime.getRuntime().exec("kill -9 123");

使用 kill,您还可以发送其他信号,如 man page 中所述(而且它不一定是杀戮信号)。默认情况下,kill 会发送一个 SIGTERM 信号,告诉进程终止,但可以忽略它。如果您希望进程在没有忽略可能性的情况下终止,可以使用 SIGKILL。在上面的代码中,第一次调用使用了 SIGTERM,后一次使用了 SIGKILL。您也可以明确说明:

// shut down process with id 123 (can be ignored by the process)
Runtime.getRuntime().exec("kill -SIGTERM 123");
// shut down process with id 123 (can not be ignored by the process)
Runtime.getRuntime().exec("kill -SIGKILL 123");

如果您想使用目标程序的名称而不是进程 ID 进行操作,还有 killall 将接受名称作为参数。顾名思义,这将杀死所有匹配的进程。示例:

// shuts down all firefox processes (can not be ignored)
Runtime.getRuntime().exec("killall -SIGKILL firefox");

关于java - 如何使用 Java 中断 Linux 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15917982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com