发送Ctrl-C以通过Java打开

净尺寸:

在Windows操作系统下。

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

我用Runtime.getRuntime()。exec(“ ping google.com -n 100000”);做了一个小例子。可以在以下位置找到代码:http : //pastebin.com/f6315063f

到目前为止,我尝试通过Process outputStream发送char'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信号。我怎样才能做到这一点?

布莱恩·阿格纽(Brian Agnew):

我相信Ctrl-C被外壳捕获并转换为信号(SIGINT),该信号被发送到基础进程(在本例中为您生成的进程)。

因此,我认为您需要获取进程ID,然后向该进程发送适当的信号。这个问题似乎非常相似,指向各种使用资源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过minicom发送ctrl-alt-del

C#通过SSH.NET发送Ctrl + Y

通过将ctrl-c发送到stdin将SIGINT发送到进程

如何使用Robot类在Java中发送CTRL + Z keyEvent

CTRL+D 不发送到管道 C

取消过程后,Ctrl + C一次发送EOFError

将Ctrl-C发送到LLDB中的应用

Python Paramiko将CTRL + C发送到ssh shell

将Ctrl-C发送到管道命令

如何捕获像ctrl + c这样的os信号并通过Go中的大猩猩websocket发送它们

如何通过管道发送bash命令并保持Ctrl + C正常工作?

Python 3通过发送Ctrl C停止子进程

将 Ctrl+C 发送到通过 ssh 运行的脚本

如何在Windows 8中通过远程桌面发送Ctrl + Alt + Delete?

如何通过子进程将Ctrl键发送到我的终端?

通过rdesktop将ctrl + alt + numpad2从Linux发送到Windows 8.1

如何通过SSH将SIGINT(Ctrl-C)发送到当前远程进程(不带-t选项)

从python框架发送Ctrl + C SIGINT到Sudoed C子进程

谁发送SIGINT到前台进程时,按CTRL + C,tty驱动或壳

Ctrl + C可以将SIGINT信号发送到多个进程吗?

在中间步骤中发送ctrl + c之后,是否可以保持命令序列运行?

如何在Node.js中将“ CTRL + C”发送到子进程?

如何使用 crontab 将 CTRL+C 发送到 tmux 窗格?

如何自动关闭Windows控制台(以编程方式发送CTRL + C到控制台)?

ctrl + c会将SIGINT信号发送到Linux中的父进程和子进程吗?

防止 CTRL+C 被发送到从 Bash 脚本调用的进程

创建一个新的键绑定,它将Ctrl-C发送到VSCode终端

节点在按CTRL + C终止后继续发送GET / sockjs-node / info请求

Linux-使用linux / bash命令针对特定的shell脚本发送Ctrl + C