如何从 cygwin 礼貌地终止 Windows 进程

如何从 cygwin 礼貌地终止 Windows 进程

我确实有一个用于启动 JBoss 服务器的 bat(startJboss.bat) 文件。当我启动它时,它会向标准 cmd (windows) 控制台创建一个输出。当我想礼貌地结束此过程时,我只需按 Ctrl + C,服务器就会按预期关闭。

我想从 cygwin 控制台启动服务器。所以启动没问题,只需

cmd /c 启动Jboss.bat

服务器已启动。我希望能够从 cygwin 中礼貌地停止它。在 cygwin 中按下 Ctrl + C 时,它会直接关闭包装 cmd,但终止信号不会传播到底层进程。因此服务器没有正确关闭。

我应该如何将 Ctrl + C 信号传播到在 bat 文件中启动的进程?

答案1

假设你的 cygwin 控制台是 mintty,听起来你正在点击mintty“与外星程序的输入/输出交互”问题(又名mintty 第 56 期)。在您的情况下,这表现为 Ctrl-C 突然终止,而不是作为信号传递给程序以进行捕获和处理。

很遗憾mintty 并不是 Windows 控制台的完整替代品并且没有实现“本机”Windows 程序所期望的各种行为。但是,您可能会很高兴将此类本机程序包装在温普蒂在 mintty 中运行它们时......

相关内容