signal-handling相关内容

信号处理程序应该放在 django 项目中的什么位置?

我刚刚开始在 django 项目中实现信号监听器.虽然我了解它们是什么以及如何使用它们.我很难弄清楚我应该把它们放在哪里.来自 django 网站的文档是这样说的: 这段代码应该放在哪里? 你可以把信号处理和您喜欢的任何地方的注册码.但是,您需要确保它所在的模块会提前导入on 以便信号处理得到在任何信号需要之前注册被发送.这使您的应用程序的models.py 是一个放置的好地方信号处理 ..
发布时间:2022-01-31 21:47:04 其他开发

在 C 中获取键盘中断

程序: #include无效的主要(){国际时间=1800;而(1){系统(“清除");时间-=1;printf("%d\n",time);睡眠(1);如果(时间==0)暂停();}} 当时间到达0时,上面的程序停止.我的要求是在程序运行期间,如果我按空格键或任何其他键,程序会暂停,再次按下键,程序会得到恢复.所以为了做到这一点,在执行之前while 条件下,我们提交键盘中断 ..
发布时间:2022-01-13 22:32:01 服务器开发

我可以写保护 Linux 进程地址空间中的每个页面吗?

我想知道是否有办法对 Linux 中的每个页面进行写保护进程的地址空间(从进程本身内部,通过mprotect()).我所说的“每一页"是指每一页普通进程可能写入的进程地址空间在用户模式下运行的程序——所以,程序文本,常量,全局变量和堆——但我会对常量感到满意,全局变量和堆.我不想写保护堆栈——那个似乎是个坏主意. 一个问题是我不知道从哪里开始写保护记忆.查看 /proc/pid/maps,它 ..
发布时间:2022-01-12 15:55:52 服务器开发

信号处理程序应该在 Django 项目中的哪个位置?

我刚刚开始在 Django 项目中实现信号监听器.虽然我了解它们是什么以及如何使用它们.我很难弄清楚我应该把它们放在哪里.来自 django 站点的文档是这样说的: 这段代码应该放在哪里? 你可以把信号处理和您喜欢的任何地方的注册码.但是,您需要确保它所在的模块提前导入以便信号处理得到在任何信号需要之前注册被发送.这使您的应用程序的models.py 一个放置的好地方注册信号处理程序. ..
发布时间:2021-12-02 19:00:52 其他开发

如何编写信号处理程序来捕获 SIGSEGV?

我想编写一个信号处理程序来捕获 SIGSEGV.我使用 保护一块内存以供读或写 char *buffer;字符 *p;字符一个;int pagesize = 4096;mprotect(缓冲区,页面大小,PROT_NONE) 这可以保护从缓冲区开始的 pagesize 字节内存免受任何读取或写入. 其次,我尝试读取内存: p = 缓冲区;a = *p 这将生成一个 SIGSEGV, ..
发布时间:2021-12-02 08:19:32 服务器开发

为什么kill -15不能正常终止我的Golang gRPC服务?

我已经使用信号处理程序来处理 SIGTERM 和 SIGINT 信号.当grpc服务器启动并运行时,我发出 sudo kill -15 [PID] 命令,但看不到正常的关机日志报告,并且得到: [1] 41983已终止,请运行mypkg/main.go 现在,当我使用netstat时,它报告端口号50051已打开,并且由于端口号繁忙而无法运行服务器. 我做了什么: func ma ..
发布时间:2021-05-11 19:48:06 其他开发

如何使用Java中基于信号处理的机制将JNI崩溃作为异常捕获

我开发了一个Java工具,它具有许多JNI功能,经常使JNI崩溃.是否有可能避免这些崩溃或将这些崩溃作为异常捕获.我上网冲浪,发现可以通过信号处理,信号调整,sigaction()等来实现.但是我找不到可靠的消息来源来指导我.请确实指导我. 解决方案 JNI异常被视为信号.您可以通过sigaction设置信号处理程序,然后尝试释放崩溃堆栈,例如通过示例: int watched_si ..

在非规范(原始)模式下进行异步串行通信并在linux/osx中生成SIGIO

首先,在准备好读取数据时,我很难让串行设备生成SIGIO. 我正在尝试编写一个简单的串行接口,以使用USB到串行适配器与微型计算机通信.我想将此接口保持与在微型接口(中断驱动,使用回调)中找到的接口相似,因此我决定采用捕获SIGIO信号的方式,而不是使用单独的线程或恒定的非阻塞串行方式读.这是我的初始化代码(在各种异步串行教程中,大多数代码看起来都很熟悉): int mcs = TIO ..
发布时间:2020-07-07 02:56:47 其他开发

在虚拟外壳中处理CTRL-C

我正在编写一个虚拟外壳程序,该外壳程序在用户键入ctrl-C时不应终止,而应仅生成一个新的提示行.当前,当我键入ctrl-C时,我的外壳并没有终止,但是它仍然不打印新的提示行.您知道为什么会这样吗,我该如何解决? 我的代码如下: #include #include #include #include # ..
发布时间:2020-07-07 02:56:43 其他开发

信号阻塞导致升压过程不起作用

在下面的代码中,类Process可以在异步模式下使用boost process运行一个进程,如果超时则可以终止该进程.现在,为了关闭它,我阻塞了所有线程中的所有信号,并创建了一个特定的线程signal_thread来处理信号.在执行此操作时,程序将停止工作.我想这可能是因为父进程无法再接收信号SIGCHLD并知道子进程已完成执行. #include #include ..
发布时间:2020-07-07 02:56:40 C/C++开发

收到SIGSEGV时是否可以仅终止一个线程?

我有一个启动多个线程的应用程序. 我正在使用信号处理程序来捕获信号. 我不希望我的应用程序在SIGSEGV上退出;我只想终止引起信号的线程,并在其他线程中继续整个应用程序的流程. 有可能吗? 解决方案 如果发生SIGSEGV,则表明您的程序已调用未定义的行为,即整个程序的状态为未定义/不确定/无效.实际上,您可能可以恢复并继续运行,但是不能保证,这很危险. 正如asveikau ..
发布时间:2020-07-07 02:56:32 其他开发

为fork()的守护程序管理信号处理

我想用perl编写一个健壮的守护程序,该守护程序将在Linux上运行并遵循在这种情况下,我有以下问题: 我应该在哪里定义我的信号处理程序.我应该在父级(守护程序)中定义它们,并假定它们将在子级中继承吗? 如果我运行exec('handle_event.pl'),这些处理程序是否将在exec上继承(我知道它们是在fork上继承的)? 如果我在handle_event.pl中重新定义一个新的 ..
发布时间:2020-07-07 02:56:30 其他开发

在Linux 64位上从Signal Handler进行回溯,并在调用堆栈上使用malloc/free

以下是我想在运行"Red Hat Enterprise Linux 5.5(Tikanga)内核2.6.18-194.el5xen x86_64" OS的计算机上使用的源示例. 一般的想法是我想要某个线程的回溯,因此我正在为该线程引发SIGUSR1信号,并且处理程序进行backtrace()调用. 在以下情况下,FrameTwo函数在循环中调用malloc和free.每当为此特定线程发 ..

Unix/Linux:SIGCONT/SIGTSTP的处理程序

我目前正在使用信号编写程序,但遇到了这个麻烦: 如何在不发送SIGSTOP/SIGCONT的情况下将执行程序的状态更改为已停止/正在运行? 我了解,我需要使用: void add_to_runqueue (struct task_struct * p) 和 void del_from_runqueue (struct task_struct * p) 但是如何获取 ..
发布时间:2020-07-07 02:55:20 服务器开发

Perl Term :: ReadLine :: Gnu信号处理困难

我正在使用Term :: ReadLine :: Gnu并遇到信号处理问题.给定以下脚本并向该脚本发送了TERM信号,直到之后按下回车键,才触发TERM信号的处理程序.使用Term :: ReadLine:Perl不会发生这种情况. 我已经读过Term :: ReadLine :: Gnu有自己的内部信号处理程序,但是坦率地说,我对如何使用它们感到困惑. 我已经查看了 http://s ..
发布时间:2020-07-07 02:55:17 其他开发

信号处理程序访问队列数据结构(竞赛条件?)

我目前正在用C ++编写一个小型shell. 作业和与之关联的PID存储在作业指针(job *)的队列中.运行新作业时,有关该作业的信息将添加到队列中.由于可以同时处理多个作业,并且可以随时在Shell控制台中输入新作业,因此我有一个信号处理程序来等待终止的作业. 作业终止时,我需要从活动作业队列中删除其信息,然后将其移至终止作业的双端队列.但是,有可能在另一个作业停止时将用户的新作业 ..
发布时间:2020-07-07 02:55:13 C/C++开发