strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等 常见参数如下 -tt 在每行输出的前面,显示毫秒级别的时间 -ttt也可以向上面那样展示微秒级的时间戳 -T 显示每次系统调用所花费的时间 -v 对于某 ...
分类:
系统相关 时间:
2021-04-02 13:03:49
阅读次数:
0
1 启动时指定信号处理函数 在nginx启动的时候就会指定信号的处理函数: ngx_int_t ngx_init_signals(ngx_log_t *log) { ngx_signal_t *sig; struct sigaction sa; for (sig = signals; sig->si ...
分类:
其他好文 时间:
2020-07-23 22:32:29
阅读次数:
82
上一篇文章只是简单的描述了一下 Linux 基本概念,通过几个例子来说明 Linux 基本应用程序,然后以 Linux 基本内核构造来结尾。那么本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程。系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文 ...
分类:
系统相关 时间:
2020-07-10 09:16:42
阅读次数:
67
【摘要】本文分析了Linux内核对于信号的实现机制和应用层 的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行 及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后 ...
分类:
系统相关 时间:
2020-03-04 14:19:53
阅读次数:
70
信号的基本概念信号就是一个软件中断,可以打断进程的执行,让进程处理信号的事件信号种类:1-31信号是不可靠信号:信号有可能会丢失(非实时信号)1.向进程发送非实时信号(该信号没有被挂起),信号响应会嵌套(即正在响应某个函数时,有其它信号发来,进程会先去响应其它信号,结束后再继续原来的任务)。2.当进程正在响应某个信号时(该信号没有被挂起),即响应函数正在执行的过程中,有相同的n个信号相继发来,进程
分类:
系统相关 时间:
2020-02-02 18:04:31
阅读次数:
90
SIGCHLD信号是当子进程终止时向父进程发送的信号;它的语义如下: 如果进程明确的将该信号设置为SIG_IGN,则调用进程不会产生僵尸进程;这种情况下,wait是等不到给子进程收尸的,所以wait阻塞到所有子进程终止后,返回-1,并且将errno设置为ECHILD; 如果进程没有明确的设置捕获该信 ...
分类:
系统相关 时间:
2019-10-30 13:14:12
阅读次数:
103
sigaction函数 修改信号处理动作(通常在Linux用其来注册一个信号的捕捉函数) int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 成功:0;失败:-1,设置errno 参数: ...
分类:
其他好文 时间:
2019-08-11 11:06:39
阅读次数:
88
一 高性能IO模型 1. 同步IO、异步IO、阻塞IO、非阻塞IO 通过IO模型介绍异步、同步、阻塞、非阻塞的IO看,本节参考文章: https://www.cnblogs.com/euphie/p/6376508.html 这里统一使用Linux下的系统调用recv作为例子,它用于从套接字上接收一 ...
分类:
其他好文 时间:
2019-03-30 18:38:55
阅读次数:
163
sigqueue函数原型: 函数作用:新的发送信号系统调用,主要是针对实时信号提出的支持信号带有参数,与函数sigaction()配合使用 分析: 第一个参数: 指定接收信号的进程id 第二个参数:确定即将发送的信号 第三个参数:是一个联合结构体union sigval,指定了信号传递的参数,即通常 ...
分类:
其他好文 时间:
2019-01-14 21:27:29
阅读次数:
192
函数函数sigaction 分析: act:传入参数,新的处理方式 oldact:传出参数,旧的处理方式 分析: sa_restorer:该元素是过时的,不应该使用, POSIX.1标准将不指定该元素。(弃用) sa_sigaction:当sa_flags被指定为SA_SIGINFO标志时,使用该信 ...
分类:
其他好文 时间:
2019-01-14 14:50:34
阅读次数:
188