标签: signals

什么杀了我的过程,为什么?

我的应用程序在Linux上作为后台进程运行.它目前在终端窗口的命令行中启动.

最近一个用户正在执行该应用程序一段时间,它神秘地死了.文本:

杀害

在终端上.这发生了两次.我问是否有人在不同的终端使用kill命令来杀死进程?没有.

在什么条件下Linux会决定杀死我的进程?我相信shell显示"已杀死",因为该进程在收到kill(9)信号后死亡.如果Linux发送了kill信号,系统日志中是否会有消息说明它被杀的原因?

linux signals kill process

578
推荐指数
8
解决办法
35万
查看次数

如何在Python中捕获SIGINT?

我正在开发一个启动多个进程和数据库连接的python脚本.我偶尔想用Ctrl+ C信号杀死脚本,我想做一些清理工作.

在Perl我会这样做:

$SIG{'INT'} = 'exit_gracefully';

sub exit_gracefully {
    print "Caught ^C \n";
    exit (0);
}
Run Code Online (Sandbox Code Playgroud)

我如何在Python中模拟这个?

python controls signals

504
推荐指数
9
解决办法
37万
查看次数

向进程组的所有成员发送信号的最佳方法是什么?

我想杀死整个进程树.使用任何常用脚本语言执行此操作的最佳方法是什么?我正在寻找一个简单的解决方案.

linux shell signals process

409
推荐指数
16
解决办法
37万
查看次数

如何防止SIGPIPE(或正确处理它们)

我有一个小型服务器程序,它接受TCP或本地UNIX套接字上的连接,读取一个简单的命令,并根据命令发送一个回复.问题是客户端有时可能对答案没兴趣并且提前退出,因此写入该套接字将导致SIGPIPE并使我的服务器崩溃.什么是防止崩溃的最佳做法?有没有办法检查线的另一边是否还在读?(select()似乎在这里不起作用,因为它总是说套接字是可写的).或者我应该用处理程序捕获SIGPIPE并忽略它?

c io signals sigpipe broken-pipe

242
推荐指数
8
解决办法
19万
查看次数

是否可以以"延迟"的方式捕获Ctrl + C信号并运行清理功能?

我想捕获从控制台发送的Ctrl+C(SIGINT)信号并打印出一些部分运行总计.

这在Golang有可能吗?

注意:当我第一次发布问题时,我很困惑Ctrl+CSIGTERM不是SIGINT.

signals go sigterm

191
推荐指数
5
解决办法
9万
查看次数

148
推荐指数
7
解决办法
17万
查看次数

shell脚本中的`kill -0 $ pid`是做什么的?

基本上,'0'代表什么信号,因为在这里我看到从1开始的SIGNAL数字.

bash shell scripting signals kill

137
推荐指数
4
解决办法
5万
查看次数

sigaction和signal之间有什么区别?

我正要为我们这里的应用程序添加一个额外的信号处理程序,我注意到作者已经习惯sigaction()了设置其他信号处理程序.我打算用signal().按照惯例我应该使用,sigaction()但如果我是从头开始写,我应该选择哪个?

c posix signals

131
推荐指数
5
解决办法
5万
查看次数

126
推荐指数
3
解决办法
12万
查看次数

在Linux中使用多个线程进行信号处理

在Linux中,当程序(可能有多个线程)收到SIGTERM或SIGHUP等信号时会发生什么?

哪个线程截获信号?多个线程可以获得相同的信号吗?是否有专门用于处理信号的特殊线程?如果没有,那么处理信号的线程内部会发生什么?信号处理程序例程结束后如何恢复执行?

c linux multithreading signals ipc

113
推荐指数
2
解决办法
6万
查看次数