停止终端命令(CTRL + Z)

时间:2015-04-21 08:03:38

标签: java macos

我有一个终端命令,如下所示。

instruments -t Activity -D /Users/admin/Desktop/woah.trace -w 878dbd88101f2db8d85ddc8e7ecbc68e45e9f9e7

此命令无限期执行,收集仪器数据,终止执行终端的方法是按 CTRL + Z

我可以使用进程(Runtime.getRuntime().exec(command);)通过Java运行我的命令,它运行正常。

我只是不知道如何停止执行。在Java中有替换 CTRL + Z 的特殊参数吗?

由于

2 个答案:

答案 0 :(得分:2)

  

是否有一个特殊的参数来替换Java中的CTRL + Z?

没有。

C-z在终端中的作用是将SIGTSTP发送到当前进程;但是Java对kill(2)没有约束力。

您必须发送此信号的唯一选择是找到对ncurses的本机绑定并发送控制字符...

答案 1 :(得分:0)

您可以将 CTRL + C 与以下代码一起使用:

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        //code to kill java application
    }
});