首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows中发送任意信号?

在Windows中发送任意信号?
EN

Stack Overflow用户
提问于 2008-09-26 15:09:23
回答 7查看 45K关注 0票数 37

Linux支持将任意Posix信号(如SIGINTSIGTERM )发送到使用kill-Command的进程。虽然SIGINTSIGTERM只是以友好或不友好的方式结束进程的无聊的老方法,但SIGQUIT是用来触发核心转储的。这可以用来触发运行中的Java来打印出线程转储,包括所有正在运行的线程的堆栈-整齐!打印调试信息之后,Java将继续执行它之前正在做的事情;实际上,线程转储只是在另一个优先级最高的派生线程中发生。(您可以通过使用kill -3 <VM-PID>自己来尝试。)

请注意,您还可以使用(不受支持的!) SignalSignalHandler类在sun.misc-package中注册您自己的信号处理程序,这样您就可以享受各种乐趣。

但是,我还没有找到向Windows进程发送信号的方法。信号是由某些用户输入创建的:例如,Ctrl-C在两个平台上触发一个SIGINT。但是,在Windows上手动向运行中的进程发送信号似乎没有任何实用工具。显而易见的解决方案是使用Cygwin kill可执行文件,但是虽然它可以使用适当的Windows结束SIGBREAK进程,但我无法使用它发送一个SIGBREAK(相当于SIGQUIT);事实上,我认为它能够发送到Windows进程的唯一信号是SIGTERM

因此,长话短说,重复标题:如何向Windows中的进程发送任意信号?

EN

Stack Overflow用户

发布于 2012-03-15 16:29:21

Ruby可以在windows上(至少模仿) SIGINT SIGKILL等,并捕获这些消息。可能想去看看。

在windows下,ruby是如何“发送信号SIGINT到该进程”的,实际上是调用TerminateProcess或该PID上的等效值。

还有一种与windows等效的“捕获ctrl+c”方法--我想这就是它所称的。

票数 0
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/140111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档