问题标签 [sigint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 python/ipython 停止 rpy2 中的嵌入式 R 进程
我正在使用 rpy2 从 ipython 执行 R。但是我想杀死或停止嵌入式 R 进程,但 Ctrl-C 不起作用。
这可能是因为 ipython 拦截了 SIGINT(我不确定)..
我用 SIGSTOP (Ctrl+Z) 进行了测试,它可以工作..
有什么方法可以在不终止 ipython/python 会话的情况下终止嵌入式进程(R/rpy2)?
谢谢
c - 当 SIGINT 信号被忽略时打印一个字符串
我被要求编写一个程序,该程序将忽略该SIGINT
信号并打印一条消息,说它已被忽略。这是我在参考 and 的手册页后想到signal
的sigaction
。
但是我很困惑当信号被忽略时我将如何打印一条消息。另一种选择是定义我自己的信号处理函数,但这样就不会忽略它,对吗?
bash - 如何捕获 Ctrl-C 并使用它正确退出无限循环
我试图在一个无限循环中运行一个程序,因为它有时会无缘无故地死掉。我希望能够按 Ctrl-C 以防止程序重新启动。
我不希望 Ctrl-C 杀死程序,只是等到它死掉,然后不再重新启动它。
theprogram
是一个葡萄酒程序(utorrent)。
告诉我如何制作它的奖励积分,因此它会theprogram
像点击右上角的“x”一样安全退出。kill
当我从命令行手动或按 Ctrl-C 时,它无法运行其清理代码。因此,我试图阻止它重新启动。
我检查了其他一些关于捕获 SIGINT 的问题,但我不知道如何做到这一点。
任何人都可以修复此代码吗?当按下 Ctrl-C 时,我的代码似乎会杀死theprogram
然后退出循环,而不是让theprogram
清理。
python - Python-使用 SIGINT 杀死线程-未正确引用全局变量
我正试图让它到达我的线程可以捕捉到信号的地方。在我看来,kill_received
单例列表位于和的相同命名空间中signal_handler()
,do_the_uploads()
并且引用了相同的内存位置。但是当我在运行时控制 C 时,我看到 False 从"print kill_received[0]"
它应该为 True 的时候开始打印,因为我点击了 control-C。
从主脚本:
更新:
仍然没有成功,但我将语法更改为这样,因为它更简洁:
c - SIGINT 的信号处理程序
我正在处理以下代码。该程序应该能够使用 sigaction 处理 SIGINT。到目前为止,它几乎完成了,但我遇到了两个问题。
第一个问题是如果在 3 秒内收到 3 个信号,程序应该打印“正在关闭”并以状态 1 退出。
第二个问题是我使用gettimeofday和struct timeval来获取有关信号到达时间的时间(以秒为单位),但我在这里也失败了。当我尝试它时,我陷入了无限循环,甚至以为我在 3 秒内按了ctrl+ C 3 次。此外,由此产生的秒数是相当大的数字。
我希望有人可以帮助我解决这两个问题。这是代码
bash - 无法使用 Ctrl+c 终止 shell 命令
有人能告诉我为什么bash
不能Ctrl+c正确终止以下语句吗?
我运行这条语句,然后启动两个bash
进程和一个tail
进程(从 获取ps auxf
),然后输入Ctrl+c,它不会退出到bash
提示符,此时我看到两个bash
进程停止了,而tail
仍在运行,那么我输入一些东西/tmp/a.txt
,然后我们可以进入 bash 提示符。
我想要的是,输入Ctrl+c,然后退出bash
提示,没有任何相关过程。
有人解释这个语句的确切过程会更加感激,比如管道导致 bash 分叉,某些东西重定向到某个地方等等。
2014 年 10 月 9 日更新:
这里提供一些更新,以防它对您有用。我采用的解决方案与两个因素相似:
使用 tmp pid 文件
/li>使用陷阱如:
trap "rm ${tail_pid} 2>/dev/null; kill 0 2>/dev/null; exit;" INT TERM
杀死相关进程并删除剩余文件。
请注意,这kill 0 2
是特定于 bash 的,0 表示当前进程组中的所有进程。该解决方案使用了 tmp pid 文件,而我仍然期望其他没有 tmp pid 文件的解决方案。
sigint - Julia,处理键盘中断
标题说明了一切。我该如何处理或抓住SIGINT
朱莉娅?从我认为我只是想InterruptException
使用try/catch
如下块捕获的文档中
但是当我用^C
.
编辑:上面的代码在 julia REPL 中按预期工作,只是不在脚本中。
bash - 在 bash 中,如何在不停止脚本的情况下捕获和处理 SIGINT?
看起来像
只要SIGINT
被捕获就停止脚本。然后,on_sigint
被执行。是否可以在SIGINT
不停止脚本的情况下进行处理?
node.js - 将 rlwrap 与 Node.js REPL 一起使用,节点“.break”(Ctrl-C)如何不被 rlwrap 解释为 SIGINT?
在讨论了如何在会话之间保留命令行历史记录之后,我定义了以下别名:
它非常适合历史持久性,但现在,每次我执行 Ctrl-C 来发送节点的“.break”命令时,rlwrap 也会接受它,但作为 SIGINT:它会清除所有内容并自杀(如其手册页中所述),因此强迫我重新启动节点会话(不得不回忆我的 var、funcs、requires 等),而我只是想“.break”......
有什么方法可以恢复经典节点行为?
- Ctrl-C : 中断
- 再次 Ctrl-C(或在空白行上):退出