14得票4回答
Docker的Bash Shell脚本无法捕获SIGINT或SIGTERM信号。

我在一个目录中有以下两个文件: FROM debian WORKDIR /app COPY start.sh /app/ CMD ["/app/start.sh"] "start.sh"(使用命令“chmod +x start.sh”赋予755权限) #!/bin/bash t...

11得票3回答
当你在BASH中按下Ctrl-C时会发生什么?(提示,它不仅仅是发送一个SIGINT信号)

首先介绍一下背景-在我使用apt-get install从公司的互联网下载时,前10秒钟左右会提供高速(400-500KB/s),然后速度就会降到十分之一(40-50KB/s),几分钟后就会变得非常慢(4-5KB/s)。这让我想到系统管理员已经实施了某种网络限制方案。 现在我知道网络不仅仅是...

14得票3回答
当发送SIGINT (^C)给包含子进程的perl脚本时会发生什么?

我有一个Perl脚本,它会分叉。 每个分叉运行一个外部程序,解析输出,并将输出转换为Storable文件。 然后父进程读取Storable文件,分析每个子进程的总数据,然后进行重复分叉或停止。 当我在一些子进程仍在运行外部程序时发出^ C时会发生什么?父perl脚本是在前台调用的,我认为...

8得票1回答
在多线程程序中捕获SIGINT信号

我正在编写一个多线程程序,希望能够处理用户可能发出的Ctrl-C命令以终止执行。据我所知,并没有保证主线程能够捕获到该信号,尽管主线程可以取消每个工作线程。因此,是否需要在工作线程的代码中设置不同的信号处理程序,以便任何人都能在信号到达时捕获它,或者是否有其他方法只在主线程的代码中设置信号处理...

7得票1回答
为什么在Docker中以PID 1运行时不能使用CTRL-C终止sleep infinity?

案例:我们有一个运行bash脚本的docker容器,需要永久“阻塞”(因为它会为另一个容器暴露卷,但有其他原因我们有时也需要这样做)。 我认为以下方法可以解决问题: exec sleep infinity; 运行 ps aux 命令,然后将“sleep”作为 PID 1 显示出来。很好...

44得票4回答
Python: 捕捉Ctrl-C命令。提示“是否真的要退出(y / n)”,如果不退出则恢复执行。

我有一个可能需要很长时间才能执行完的程序。在主模块中,我有以下代码:import signal def run_program() ...time consuming execution... def Exit_gracefully(signal, frame): ... lo...

18得票2回答
Cygwin的CTRL-C(信号中断)无法正常工作 - JVM关闭钩子未启动

我正在开发一个Java应用程序,利用shutdown hook在程序终止/中断时进行清理,但是我注意到Cygwin的CTRL-C实现似乎不会触发shutdown hook。表面上看它已经中断了进程,将控制权交还给命令行,但是进程的shutdown hook根本没有被触发,所以清理工作不会发生。...

13得票5回答
Common Lisp 中的 Unix 信号处理

我已经对这个主题进行了一些研究,但并没有找到什么有价值的信息。在Common Lisp中,实现依赖方式似乎有多种处理Unix信号的方法,但是否有一种跨平台的包可以处理信号呢? 我主要想监听SIGINT信号,并在我的应用程序中实现优雅的关机。我正在Linux上使用Clozure CL 1.7…...

17得票4回答
Readline:在SIGINT时获取新的提示符

我有类似以下代码的内容,使用 readline:#include <errno.h> #include <error.h> #include <getopt.h> #include <stdio.h> #include <stdlib.h&...

15得票2回答
为什么我不能在后台shell中设置SIGINT陷阱?

这是一个简单的程序注册了两个trap处理程序,然后使用trap -p显示它们。接着,它以相同的方式在一个子后台进程中运行。 为什么后台进程忽略了SIGINT陷阱呢?#!/bin/bash echo "Traps on startup:" trap -p echo "" trap 'ech...