gpt4 book ai didi

java - 发送 Ctrl-C 到 Java 打开的进程

转载 作者:太空狗 更新时间:2023-10-29 22:56:46 51 4
gpt4 key购买 nike

在 Windows 操作系统下。

我通过 Runtime.getRuntime().exec() 启动一个子进程;我想向进程发送“ctrl-c”以停止它。

我做了一个小例子,用 Runtime.getRuntime().exec("ping google.com -n 100000");代码可以在那里找到:http://pastebin.com/f6315063f

到目前为止,我尝试通过 Process outputStream 发送字符“3”(ctrl-C 字符)。

这里有一些代码:

 cmd = re.exec("ping google.com -n 10000"); 
out = new BufferedWriter (new OutputStreamWriter(cmd.getOutputStream()));
input = new BufferedReader (new InputStreamReader(cmd.getInputStream()));


char ctrlBreak = (char)3;
//Different testing way to send the ctrlBreak;
out.write(ctrlBreak);
out.flush();
out.write(ctrlBreak+"\n");
out.flush();

我不想终止进程,我只是想发送一个 Ctrl-C 信号。我该怎么做?

最佳答案

我相信 Ctrl-C 被 shell 捕获并转换为信号 ( SIGINT ),该信号被发送到底层进程(在本例中是您的派生进程)。

所以我认为您需要获取进程 ID,然后向该进程发送适当的信号。 This question看起来非常相似,并指向各种使用资源。

关于java - 发送 Ctrl-C 到 Java 打开的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1835885/

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