在窗口中发送任意信号?
Linux 支持使用 -Command 向进程发送任意 Posix 信号,例如 或 。虽然和只是无聊的旧方法,以友好或不那么友好的方式结束一个过程,但旨在触发核心转储。这可用于触发正在运行的 Java VM 以打印出线程转储,包括所有正在运行的线程的堆栈跟踪 - 整洁!打印调试信息后,Java VM将继续执行之前执行的操作;实际上,线程转储只是发生在另一个最大优先级的生成线程中。(您可以使用 自己尝试一下。)SIGINT
SIGTERM
kill
SIGINT
SIGTERM
SIGQUIT
kill -3 <VM-PID>
请注意,您还可以使用(不支持! 和 -package 中的类,因此您可以使用它获得各种乐趣。Signal
SignalHandler
sun.misc
但是,我还没有找到一种方法来向Windows进程发送信号。信号由某些用户输入创建:例如,在两个平台上触发 a。但是,似乎没有任何实用程序可以手动向Windows上运行但非交互式进程发送信号。显而易见的解决方案是使用Cygwin可执行文件,但是虽然它可以使用适当的Windows API结束Windows进程,但我无法发送(Windows等同于)与它;实际上,我认为它能够发送到Windows进程的唯一信号是 。Ctrl-C
SIGINT
kill
SIGBREAK
SIGQUIT
SIGTERM
因此,长话短说并重复标题:如何向Windows中的进程发送任意信号?