sigint相关内容

Python:如何防止子进程接收 CTRL-C/Control-C/SIGINT

我目前正在为在 shell 中运行的专用服务器开发一个包装器.包装器通过子进程生成服务器进程并观察其输出并对其做出反应. 必须明确地给专用服务器一个命令才能正常关闭.因此,CTRL-C 不能到达服务器进程. 如果我在 python 中捕获 KeyboardInterrupt 异常或覆盖 SIGINT 处理程序,服务器进程仍会收到 CTRL-C 并立即停止. 所以我的问题是:如何防 ..
发布时间:2022-01-18 15:51:28 Python

防止 Ctrl+C 中断 Golang 中的 exec.Command

我注意到,即使通过 signal.Notify 拦截了中断调用,以 exec.Command 开始的进程也会被中断.我已经完成了以下示例来说明问题: 主包进口 (“日志"“操作系统"“操作系统/执行"“操作系统/信号"“系统调用")函数睡眠(){log.Println("睡眠开始")cmd := exec.Command("睡眠", "60")cmd.运行()log.Println("睡眠停止" ..
发布时间:2022-01-18 15:43:33 其他开发

如何捕捉 ctrl-c 事件?

如何在 C++ 中捕获 Ctrl+C 事件? 解决方案 signal 不是最可靠的方法,因为它在实现上有所不同.我建议使用 sigaction.Tom 的代码现在看起来像这样: #include #include #include #include 无效 my_handler(int s){printf("捕获 ..
发布时间:2022-01-15 11:15:30 C/C++开发

如何通过 SSH 将 SIGINT 发送到远程进程?

我有一个在远程机器上运行的程序,它希望从父级接收 SIGINT.该程序需要接收该信号才能正常运行.不幸的是,如果我通过 SSH 远程运行该进程并发送 SIGINT,则 ssh 进程本身会捕获和中断而不是转发信号. 以下是使用 GDB 的此行为示例: 本地运行: $ gdbGNU gdb 6.3.50-20050815(苹果版 gdb-1344)(2009 年 7 月 3 日星期五 0 ..
发布时间:2021-12-23 23:13:35 其他开发

当发送到包含子级的 perl 脚本时,SIGINT (^C) 会发生什么?

我有一个分叉的 Perl 脚本. 每个 fork 运行一个外部程序,解析输出,并将输出转换为可存储文件. 然后父级读取可存储文件,并分析每个子级的总数据,然后继续前一个分支的重复,否则父级将停止. 当我发出 ^C 而一些孩子仍在运行外部程序时究竟会发生什么?父 perl 脚本在前台调用,并且我认为尽管进行了分叉,但它仍保留在前台. SIGINT 是否传递给所有子进程,即父进 ..
发布时间:2021-12-10 18:51:18 其他开发

我可以向 Windows 上的应用程序发送 ctrl-C (SIGINT) 吗?

我(过去)编写了跨平台(Windows/Unix)应用程序,当从命令行启动时,处理用户输入的 Ctrl-C 以相同的方式组合(即干净地终止应用程序). 是否可以在 Windows 上发送 Ctrl-C/SIGINT/等价于另一个(无关)进程的进程,以请求它干净地终止(给它有机会整理资源等)? 解决方案 我最接近解决方案的是 SendSignal 3rd 方应用.作者列出了源代码和一个 ..
发布时间:2021-12-05 18:52:21 其他开发

如何发送“CTRL+C"Node.js 中的子进程?

我试图生成子进程 - vvp (https://linux.die.net/人/1/vvp).在某些时候,我需要将 CTRL+C 发送到该进程.我希望模拟会被中断,并且我会收到交互式提示.之后我可以通过向子进程发送命令来继续模拟.所以,我尝试了这样的事情: var child = require('child_process');var fs = require('fs');var vcdGen ..
发布时间:2021-09-25 20:19:08 其他开发

SIGINT取消bash脚本中的读取?

我正在编写一个bash包装器,以学习一些脚本编写概念.这个想法是用bash编写脚本,并在登录时将其设置为用户的shell. 我做了一个while循环,以读取 s和 eval 用户的输入,然后注意到,每当用户键入 CTRL + C 时,脚本中止,因此用户会话结束. 为避免这种情况,我困了 SIGINT ,在陷阱中什么也不做. 现在,问题是当您在命令的一半输入 CTRL + C 时, ..
发布时间:2021-04-14 19:32:56 其他开发

无法在后台shell中捕获SIGINT信号

在子进程/后台进程中运行时,我无法捕获信号. 这是我简单的bash脚本: #!/bin/bash回声“在儿童中"陷阱"got_signal"SIGINT函数got_signal {回声“被困"出口0}而[true];做睡2完毕 在运行此功能并稍后运行时 kill -SIGINT(pid) 一切正常,将打印被困并退出. 现在,如果我从这样的父脚本中启动相同的脚本: #!/ ..
发布时间:2021-04-14 19:30:15 其他开发

bash:为什么我不能在后台shell中设置SIGINT陷阱?

这是一个简单的程序,它注册了两个 trap 处理程序,然后使用 trap -p 显示它们.然后,它执行相同的操作,但是在子级后台进程中. 为什么后台进程会忽略 SIGINT 陷阱? #!/bin/bash回显“启动时的陷阱:"陷阱-p回声“"陷阱'回显“接收到的INT"'INT陷阱“回显“收到的条款""条款回显“在父级上设置的陷阱:"陷阱-p回声“"(回显“启动时的子陷阱:"陷阱-p回声“ ..
发布时间:2021-04-14 19:27:51 其他开发

Java信号处理然后返回主程序

MI有一个以for循环开头的程序,它旋转10次,一个循环持续一秒钟.我需要处理一个信号(CTRL + C),并且在处理它时,它应该自己做for循环,然后在它停止后,再返回主循环.我已经设法完成了上面的几乎所有工作,但是循环并没有单独执行.他们并行进行.希望你能帮忙...谢谢:) 顺便说一句,我的代码是: import sun.misc.Signal; import sun.misc.S ..
发布时间:2020-07-07 02:50:09 Java开发

无法使用Ctrl + c终止Shell命令

有人可以告诉我为什么 Ctrl + c 不能正确终止bash语句吗? $( { ( tail -fn0 /tmp/a.txt & )| while read line; do echo $line; done } 3>&1 ) 我运行此语句,然后启动两个bash进程和一个tail进程(从ps auxf获取),然后输入 Ctrl + c ,它不会退出到在bash提示符下,此时,我看到两个b ..
发布时间:2020-07-07 02:50:03 其他开发

Ctrl + C不会杀死Sinatra + EM :: WebSocket服务器

我正在构建一个同时运行EM :: WebSocket服务器和Sinatra服务器的Ruby应用.我个人认为这两个都可以处理SIGINT.但是,当在同一个应用程序中同时运行两个应用程序时,当我按Ctrl + C组合键时,该应用程序将继续运行.我的假设是其中一个正在捕获SIGINT,而另一个也无法捕获它.不过,我不确定该如何解决. 下面是代码: require 'thin' require ..
发布时间:2020-07-07 02:48:49 其他开发

Node.js:无法处理从process.kill()发送的SIGINT

我在Windows 8.1 x64上使用Node.js v0.10.31.我注意到,对于处理SIGINT处理程序的进程(node.js或python脚本),当process.kill(PID, "SIGINT")从另一个node.js进程发送信号时,不会调用该处理程序,从而导致其终止.但是我确实验证了如果在控制台中按CTRL-C键发送了SIGINT,则将调用处理程序. 这是处理SIGINT( ..
发布时间:2020-07-07 02:48:45 Python

将SIGINT信号委托给子进程,然后清理并终止父进程

我有一个主要的python(testmain.py)脚本,该脚本使用subprocess.Popen命令执行另一个python脚本(test.py).当我按Ctrl-C时,我希望孩子退出时退出代码为2,然后让父级显示退出代码,然后终止. 我在父脚本和子脚本中都有信号处理程序. testmain.py def signal_handler(signal, frame): p ..
发布时间:2020-07-07 02:48:41 服务器开发

防止SIGINT关闭bash脚本中的子进程

我正在编写一个bash脚本,其中编写了一个处理程序来照顾用户何时按下Control + C(通过使用trap interruptHandler SIGINT),但SIGINT既发送到bash脚本又发送到子进程,即当前正在运行,正在关闭子进程.如何防止这种情况发生? 编辑:这是脚本,不要过多批评我的技能. #!/bin/bash trap "interruptHandler" SIGIN ..
发布时间:2020-07-07 02:48:40 其他开发

Perl在bash中捕获Ctrl-C(sigint)

我正在阅读我们如何捕获CTRL ^ C-Perl僧侣,但是我似乎无法获得正确的信息来解决我的问题. 问题是-我有一个无限循环,并且在终端显示了“多行"打印输出(我知道我会被告知使用ncurses-但对于简短的脚本,我会更自在写一堆printf s ).我想以这种方式捕获Ctrl-C,以使脚本仅在完成多行打印输出后 终止. 脚本为(Ubuntu Linux 11.04): #!/u ..
发布时间:2020-07-07 02:48:36 其他开发