问题标签 [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.
c - 忽略 ctrl-c
我正在尝试编写一个 shell,而我正处于我想忽略的地步CtrlC。
我目前有我的程序忽略 SIGINT 并在信号到来时打印一个新行,但我怎样才能防止^C
被打印?
按下 时CtrlC,我得到的是:
但我想要:
这是我的相关代码CtrlC:
windows - 我可以向 Windows 上的应用程序发送 ctrl-C (SIGINT) 吗?
我(过去)编写过跨平台(Windows/Unix)应用程序,当从命令行启动时,以相同的方式处理用户键入Ctrl的C组合(即干净地终止应用程序)。
在 Windows 上是否可以从另一个(不相关的)进程向进程发送Ctrl- C/SIGINT/equivalent 请求它干净地终止(给它一个整理资源等的机会)?
python - 我可以将 SIGINT 发送到 Windows 上的 Python 子进程吗?
我有一个 Python 脚本在 Windows 上管理一个 gdb 进程,我需要能够向生成的进程发送一个 SIGINT 以停止目标进程(由 gdb 管理)
Win32 中似乎只有 SIGTERM 可用,但很明显,如果我从控制台运行 gdb 并按 Ctrl+C,它认为它正在接收 SIGINT。有没有办法可以伪造这个,以便该功能在所有平台上都可用?
(我正在使用 subprocess 模块和 python 2.5/2.6)
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 时中断它中断或命中断点。
ssh - 如何通过 SSH 将 SIGINT 发送到远程进程?
我有一个在远程机器上运行的程序,它希望从父级接收 SIGINT。该程序需要接收该信号才能正常运行。不幸的是,如果我通过 SSH 远程运行该进程并发送 SIGINT,则 ssh 进程本身会捕获和中断而不是转发信号。
以下是使用 GDB 的此行为示例:
本地运行:
远程运行:
任何人都可以提出解决这个问题的方法吗?本地 ssh 客户端是 OpenSSH_5.2p1。
bash - 如何让 bash 等待结果并在收到结果时发送 SIGKILL?
我想使用 zbarcam,但在读取条形码后,它并没有停止。
您知道在标准输出上打印第一个 \n 后如何告诉 bash 杀死 zbarcam 吗?
c++ - 如何捕捉 ctrl-c 事件?
如何在 C++ 中捕获Ctrl+C事件?
python - 在 SIGINT 之后保存工作
我有一个需要很长时间才能完成的程序。我希望它能够捕获SIGINT
(ctrl-c) 并调用该self.save_work()
方法。
就目前而言, mysignal_hander()
不起作用,因为
self
程序到达的时间没有定义signal_handler()
。
我该如何设置它以便self.save_work
在 a 之后被调用SIGINT
?
c++ - 向子进程发送 SIGINT
我正在尝试创建一个子进程,然后在不终止父进程的情况下将 SIGINT 发送给子进程。我试过这个:
但是当我点击抄送时,两个进程都被终止了
c++ - SIGINT 处理和 getline
我写了这个简单的程序:
如果我在程序等待输入时点击Ctrl+ ,我会得到以下输出:
Enter text: received SIGINT C
输入文字:
输入文字:
输入文字:
输入文字:
(程序继续循环而不等待输入)
我该怎么办?