我使用jsch ChannelShell
向远程系统发送命令,但我无法发送ctrl+c
等特殊命令。我尝试了很多东西,但没有成功。
任何帮助都将不胜感激。
答案 0 :(得分:2)
您只需发送信号即可。 在你的情况下,它将是2,对应于CTRL + C:
channel.sendSignal("2"); // sends (CTRL+C) signal
您可以找到Unix信号列表here。
答案 1 :(得分:0)
我想,我弄清楚了我的错。 Cat和grep(以及那些类型的命令)命令是一次性命令。它们不是连续的。所以我无法中断这些命令。我必须停止监听流以停止打印输出。
答案 2 :(得分:0)
如果你想终止像tail这样的操作
Example - BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
OutputStream out=ce.getOutputStream();
out.write(3); //terminate the tail command
out.flush();