我还认为模拟Ctrl-C以完全杀死ssh是有问题的。
我会做的是以下方法之一。可以使用Windows命令找出谁是ssh的儿子(这有点麻烦,因为您需要知道当前的pid才能接收自己的子进程)。我相信sysinternals的pstools是一个很好的命令行工具,应该可以使您跟踪孤立进程。请参阅此示例,以控制Windows进程
taskList.exe(使用可以通过BTW以CSV格式提供输出)或执行特殊的VBscript。
第二种方法是使用Java库(例如winp)来执行和控制ssh进程。我相信您可以列出所有子级,并在发送正确消息不够时强行杀死他们。这将是我的首选方法。请注意,killRecursively方法完全可以满足您的需求。
请注意,这些方法不应仅呈现应用程序窗口。您可以将它们封装在可以在Windows和linux计算机上不同地运行的类中。
请注意,我没有尝试对Windows进程进行细粒度的控制,所以我不确定我找到的那些解决方案有多成熟。



