问题标签 [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.

0 投票
2 回答
3369 浏览

c - 忽略 ctrl-c

我正在尝试编写一个 shell,而我正处于我想忽略的地步CtrlC

我目前有我的程序忽略 SIGINT 并在信号到来时打印一个新行,但我怎样才能防止^C被打印?

按下 时CtrlC,我得到的是:

但我想要:

这是我的相关代码CtrlC

0 投票
17 回答
118178 浏览

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

我(过去)编写过跨平台(Windows/Unix)应用程序,当从命令行启动时,以相同的方式处理用户键入CtrlC组合(即干净地终止应用程序)。

在 Windows 上是否可以从另一个(不相关的)进程向进程发送Ctrl- C/SIGINT/equivalent 请求它干净地终止(给它一个整理资源等的机会)?

0 投票
1 回答
5752 浏览

python - 我可以将 SIGINT 发送到 Windows 上的 Python 子进程吗?

我有一个 Python 脚本在 Windows 上管理一个 gdb 进程,我需要能够向生成的进程发送一个 SIGINT 以停止目标进程(由 gdb 管理)

Win32 中似乎只有 SIGTERM 可用,但很明显,如果我从控制台运行 gdb 并按 Ctrl+C,它认为它正在接收 SIGINT。有没有办法可以伪造这个,以便该功能在所有平台上都可用?

(我正在使用 subprocess 模块和 python 2.5/2.6)

0 投票
1 回答
2034 浏览

gdb - 在没有信号的情况下停止 GDB 中的劣质进程?

有没有办法在不使用 Ctrl+C (或从另一个进程发送的等效信号?)的情况下阻止劣质?我正在使用 Windows 平台并正在从另一个进程管理 GDB,所以没有信号的概念,似乎有当我的程序在没有任何断点的情况下自由运行时,它不是中断程序执行的好方法。

编辑清晰:

这里涉及2个过程。有进程 A,它是 GDB 的父进程。GDB 正在管理一个进程,但它在远程主机上,我们称该进程为 C。

当我告诉 GDB “运行”时,它会启动远程主机上的进程 C 并阻塞,直到遇到断点,进程 C 遇到错误或致命信号,或者 GDB 本身接收到中断信号。如果以交互方式工作,您只需在 GDB 命令控制台上按 CTRL+C,GDB 将其解释为 SIGINT(不知何故),触发 GDB 停止进程 C。因为我实际上是用进程 A 管理 GDB(而不是处理它)在 shell 交互)我不能很好地按下 Ctrl+C,而且由于 windows 没有像 UNIX 中那样的“信号”的原生概念,我不知道如何在 GDB 阻塞等待进程 C 时中断它中断或命中断点。

0 投票
4 回答
15683 浏览

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

我有一个在远程机器上运行的程序,它希望从父级接收 SIGINT。该程序需要接收该信号才能正常运行。不幸的是,如果我通过 SSH 远程运行该进程并发送 SIGINT,则 ssh 进程本身会捕获和中断而不是转发信号。

以下是使用 GDB 的此行为示例:

本地运行:

远程运行:

任何人都可以提出解决这个问题的方法吗?本地 ssh 客户端是 OpenSSH_5.2p1。

0 投票
3 回答
835 浏览

bash - 如何让 bash 等待结果并在收到结果时发送 SIGKILL?

我想使用 zbarcam,但在读取条形码后,它并没有停止。

您知道在标准输出上打印第一个 \n 后如何告诉 bash 杀死 zbarcam 吗?

0 投票
4 回答
149993 浏览

c++ - 如何捕捉 ctrl-c 事件?

如何在 C++ 中捕获Ctrl+C事件?

0 投票
3 回答
617 浏览

python - 在 SIGINT 之后保存工作

我有一个需要很长时间才能完成的程序。我希望它能够捕获SIGINT(ctrl-c) 并调用该self.save_work()方法。

就目前而言, mysignal_hander()不起作用,因为 self程序到达的时间没有定义signal_handler()

我该如何设置它以便self.save_work在 a 之后被调用SIGINT

0 投票
3 回答
10089 浏览

c++ - 向子进程发送 SIGINT

我正在尝试创建一个子进程,然后在不终止父进程的情况下将 SIGINT 发送给子进程。我试过这个:

但是当我点击抄送时,两个进程都被终止了

0 投票
1 回答
3335 浏览

c++ - SIGINT 处理和 getline

我写了这个简单的程序:

如果我在程序等待输入时点击Ctrl+ ,我会得到以下输出: Enter text: received SIGINT C

输入文字:
输入文字:
输入文字:
输入文字:

(程序继续循环而不等待输入)

我该怎么办?