signals相关内容

意外发生了致命信号 16 (SIGSTKFLT)

今天我遇到了一个奇怪的问题.我在三台设备上安装了我的应用 华硕 Transformer Pad Infinity TF700T 三星 I9082 Galaxy Grand Duos LG Optimus L7 II 双 p715 首先,我使用所有这些设备在调试模式下从 Eclipse 运行我的应用程序.没关系. 然后,我以通常的方式运行我的应用程序(就在设备上).就这样,我所 ..
发布时间:2022-01-07 22:45:29 移动开发

在 Django 中提交事务后运行代码

在 Django 中提交事务后有没有办法运行一些代码? 我需要将一些消息发送到rabbitmq 服务器以进行离线处理,但是在提交Django 事务之前,消息会到达消费者. 我的消息是在模型的 post_save 信号中发送的.我正在寻找的是一种类似的机制,使用信号或其他东西,在提交后执行代码(如果事务失败,则不执行任何操作). 我还没有在 Django 中找到任何通用的方法.你有 ..
发布时间:2022-01-06 20:33:32 其他开发

volatile sig_atomic_t 的正确使用

根据 this 站点,可以在信号处理程序中使用 volatile sig_atomic_t 类型的变量.现在我的问题是,例如下面的代码仍然是原子的,因此不会引入竞争条件吗? 假设我们使用的是多核处理器(编辑:运行多线程程序).volatile sig_atomic_t 甚至首先适用于多核系统,还是我们应该使用 C++11 的 atomic 来处理多核系统上的信号处理程序(EDIT:运行多线程 ..
发布时间:2022-01-06 13:02:02 服务器开发

从控制台(Ctrl-C)杀死时,让我的 PyQt 应用程序退出的正确方法是什么?

让我的 PyQt 应用程序从控制台 (Ctrl-C) 终止时退出的正确方法是什么? 目前(我没有做任何特殊的事情来处理 unix 信号),我的 PyQt 应用程序忽略了 SIGINT (Ctrl+C).我希望它表现得很好并在它被杀死时退出.我该怎么做? 解决方案 17.4.信号 — 为异步事件设置处理程序 尽管就 Python 用户而言,Python 信号处理程序是异步调用 ..
发布时间:2022-01-05 21:40:01 服务器开发

检查 errno != EINTR: 是什么意思?

我发现这段代码被多次使用(也是一个类似的代码,它使用 open() 而不是 write()). int c = write(fd, &v, sizeof(v));if (c == -1 && errno != EINTR) {perror("写入输出文件");退出(EXIT_FAILURE);} 为什么要检查 &&errno != EINTR 在这里? 在man上寻找errno 我发现了 ..
发布时间:2022-01-04 22:07:05 服务器开发

处理多个 SIGCHLD

在运行 Linux 2.6.35+ 的系统中,我的程序创建了许多子进程并监视它们.如果子进程死亡,我会进行一些清理并再次生成该进程.我使用 signalfd() 在我的进程中获取 SIGCHLD 信号.signalfd 使用 libevent 异步使用. 当对非实时信号使用信号处理程序时,当信号处理程序正在为特定信号运行时,必须阻止相同信号的进一步发生以避免进入递归处理程序.如果此时有多个信 ..
发布时间:2022-01-04 22:01:15 服务器开发

shell 脚本中的 `kill -0 $pid` 有什么作用?

基本上,'0'代表什么信号,因为在这里我看到信号数字从 1 开始. 解决方案 将信号 0 发送到给定的 PID 只是检查是否有任何具有给定 的进程PID 正在运行,您有权向其发送信号. 有关详细信息,请参阅以下联机帮助页: 杀死(1) $ man 1 kill...如果 sig 为 0,则不发送信号,但仍会执行错误检查.... kill(2) $ man 2 kill...如 ..
发布时间:2022-01-04 09:50:49 其他开发

C#:如何强制“调用"通过以某种方式从另一个线程发出信号来从主线程获取一个方法

对不起,标题太长,我什至不知道如何表达问题 我使用的库从与主线程不同的上下文运行回调(是一个 C 库),我在 C# 中创建了回调,当被调用时,我只想引发一个事件. 但是因为我不知道事件里面会发生什么,所以我想找到一种方法来调用该方法而不会出现锁等问题(否则第三方用户将不得不在事件内部处理这个,很丑) 有没有办法做到这一点?我可能完全走错了路,但我正在考虑用 winforms 的方 ..
发布时间:2022-01-03 08:37:48 C#/.NET

使用“sigaction(2)"忽略“SIGCHLD"信号有什么用?

事实证明,我们可以通过指定来防止出现僵尸进程(即,其父进程没有 wait() 等待它到 _exit())SIGCHLD 信号被其父级用 sigaction() 忽略.然而,似乎 SIGCHLD 在默认情况下被忽略.这是怎么回事? int main (void) {struct sigaction sa;sa.sa_handler = SIG_IGN;//通过忽略处理信号sigemptyset(& ..
发布时间:2022-01-02 19:28:39 服务器开发

在 Java 虚拟机中处理信号

是否可以在 Java 虚拟机中处理 POSIX 信号? 至少 SIGINT 和 SIGKILL 应该完全独立于平台. 解决方案 JVM 自行响应信号.有些会导致 JVM 正常关闭,包括运行关闭挂钩.其他信号将导致 JVM 在不运行关闭挂钩的情况下中止. 使用 Runtime.addShutdownHook(Thread). 我不认为 JDK 提供了一种官方方式来处理 Ja ..
发布时间:2022-01-02 19:28:03 Java开发

如何让 tcsetpgrp() 在 C 中工作?

我正在尝试让子进程(通过 fork())前台访问终端. 在我fork()之后,我在子进程中运行以下代码: setpgid(0, 0); 还有: setpgid(child, child); 在父进程中. 这为子进程提供了自己的进程组.对 setpgid() 的调用工作正常. 现在我想让孩子访问终端. 我在 setpgid() 调用后向孩子添加了以下内容: if ( ..
发布时间:2022-01-02 19:11:48 其他开发

django 暂时禁用信号

我在 Django 中有一个信号回调: @receiver(post_save, sender=MediumCategory)def update_category_descendants(sender, **kwargs):def children_for(类别):返回 MediumCategory.objects.filter(parent=category)def do_update_de ..
发布时间:2022-01-02 09:33:11 其他开发

MySQL:无法在触发器中使用信号

我正在尝试使用 MySQL 触发器生成错误消息.下面是我的代码: DELIMITER $$在插入`Initial_Fees`之前创建触发器`test_before_insert`每行开始IF ((SELECT Activation from Portfolio WHERE idPortfolio = New.idPortfolio)=false) THEN信号 SQLSTATE '45000'; ..
发布时间:2022-01-01 21:06:06 数据库

用户空间中的 Linux C/C++ 定时器信号处理程序

我需要 C/C++ linux 中的一个函数(例如信号处理程序),它每 'n' 毫秒被激活一次.我如何设置信号等...以毫秒分辨率注册到计时器事件. 准确度不是很关键,但需要在百毫秒左右. 我是 Linux 新手,我真的不知道从哪里开始. 解决方案 setitimer(2) 是一个好的开始,但你真的想要异步处理信号吗?否则,你可以有一个带有 select(2) 或 poll(2 ..
发布时间:2021-12-31 15:38:16 服务器开发

定时器和信号问题

我已经使用 timer_create() API 实现了一个 POSIX 计时器,这将在计时器到期时生成 SIGUSR1,我已经为其放置了处理程序代码.现在的问题是,如果这个程序接收到另一个 SIGUSR1,那么将调用并捕获相同的信号处理程序. 有什么办法可以防止这种情况发生,以便处理程序可以捕获仅由计时器生成的信号? 解决方案 这对你有用吗?(修改了 timer_create 手册 ..
发布时间:2021-12-31 15:14:17 服务器开发

了解 scipy 反卷积

我正在尝试了解 scipy.signal.deconvolve. 从数学的角度来看,卷积只是傅立叶空间中的乘法,所以我期望对于两个函数 f 和 g: Deconvolve(Convolve(f,g), g) == f 在 numpy/scipy 中,情况并非如此,或者我错过了重要的一点.尽管已经有一些与 SO 上的反卷积相关的问题(例如 here 和 此处)他们没有解决这一点,其他人 ..
发布时间:2021-12-31 11:53:01 Python

捕获正在运行的进程关闭的 Windows 终端

在命令提示符窗口中,我有一个正在运行的进程.当进程仍在执行时,我单击命令提示符窗口角落中的(红色)“X".命令提示符窗口关闭,正在运行的进程终止. 在 Linux 上,关闭正在运行的进程的父终端将发送该进程 SIGHUP.如何在 Windows 上捕获此事件? 解决方案 SIGHUP 的等效项是通过您在 SetConsoleCtrlHandler.您的回调函数将在任意线程池线程上使用 ..
发布时间:2021-12-28 10:35:37 其他开发

终端关闭时bash接收到的信号

使用trap来捕获这样的信号: i=-1;while((++i 并强制关闭终端. log.txt里面的内容就是(redhat linux下): 1 18 1 17 0 这些信号来自哪里? 解决方案 第一个信号是SIGHUP;当终端断开连接(挂断 - 因此 HUP)时,它会被发送到进程组中的所有进程. 第二个信号是 SIGCONT(感谢 S ..
发布时间:2021-12-28 10:09:04 其他开发

如何在 BOOST 中在一个线程中发送信号并在另一个线程中执行相应的插槽?

例如,在 Qt 中,如果您在 GUI 线程以外的线程中发出信号,则该信号会被排入队列并稍后在 GUI 线程中执行,有没有办法通过 boost 来做到这一点? 谢谢 解决方案 对于事件循环,请使用 boost::asio::io_service.您可以在此对象中发布任务并让另一个线程以线程安全的方式执行它们: struct MyClass{boost::io_service 服务;v ..
发布时间:2021-12-24 15:21:05 C/C++开发

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

我有一个在远程机器上运行的程序,它希望从父级接收 SIGINT.该程序需要接收该信号才能正常运行.不幸的是,如果我通过 SSH 远程运行该进程并发送 SIGINT,则 ssh 进程本身会捕获和中断而不是转发信号. 以下是使用 GDB 的此行为示例: 本地运行: $ gdbGNU gdb 6.3.50-20050815(苹果版 gdb-1344)(2009 年 7 月 3 日星期五 0 ..
发布时间:2021-12-23 23:13:35 其他开发