Linux 进程与信号的概念和操作】的更多相关文章

进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 信号与进程几乎控制了操作系统的每个任务. 在shell中输入ps -ef命令,我们将得到如下结果: (译者注:-e Select all processes. Identical to -A: -f Do full-format listing. This option can be combined with many other UNIX-style…
进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 译者:李秋豪 信号与进程几乎控制了操作系统的每个任务. 在shell中输入ps -ef命令,我们将得到如下结果: (译者注:-e Select all processes. Identical to -A: -f Do full-format listing. This option can be combined with many other UNIX…
9.1 进程简单说明 进程是一个非常复杂的概念,涉及的内容也非常非常多.在这一小节所列出内容,已经是我极度简化后的内容了,应该尽可能都理解下来,我觉得这些理论比如何使用命令来查看状态更重要,而且不明白这些理论,后面查看状态信息时基本上不知道状态对应的是什么意思. 但对于非编程人员来说,更多的进程细节也没有必要去深究,当然,多多益善是肯定的. 9.1.1 进程和程序的区别 程序是二进制文件,是静态存放在磁盘上的,不会占用系统运行资源(cpu/内存). 进程是用户执行程序或者触发程序的结果,可以认为…
30.1 信号的基本概念 信号(signal)机制是Linux 系统中最为古老的进程之间的通信机制,解决进程在正常运行过程中被中断的问题,导致进程的处理流程会发生变化 信号是软件中断 信号是异步事件 不可预见 信号有自己的名称和编号 信号和异常处理机制 信号发生的来源 硬件来源:如按下键盘或其他硬件故障,信号是由驱动程序产生 软件来源:最常用发送信号的系统函数是 kill(),raise(),alarm() 和 setitimer() 等函数,软件来源还包括一些非法运算等操作,软件设置条件(如:…
18.1 进程的概念 程序:程序(program)是存放再磁盘文件中的可执行文件 进程 程序的执行实例被称为进程(process) 一个程序的执行实例可能由多个 进程具有独立的权限和职责.如果系统中某个进程崩溃,它不会影响到其余的进程. 每个进程运行在其各自的虚拟地址空间中,进程之间可以通过由内核控制的机制相互通讯 进程ID 每个 Linux 进程都一定由一个唯一的数字标识符,称为进程ID(process ID),进程ID总是一非负整数 18.2 内核中的进程结构体 每一个启动进程都有一个 ta…
27.1 进程组 27.1.1 进程组介绍 进程组为一个或多个进程的集合 进程组可以接受同一终端的各种信号,同一个信号发送进程组等于发送给组中的所有进程 每个进程组有唯一的进程组 ID 进程组的消亡要等到组中所有的进程结束 进程组的消亡:kill 发送信号给进程组 kill -9  -进程组号 27.1.2 进程组 ID 获取--- getpgrp 和 getpgid (1)getpgrp --- 获取调用进程的进程组ID #include <unistd.h> pid_t getpgrp(v…
23.1 进程链和进程扇 23.1.1 概念 进程链:一个父进程构建出一个子进程,子进程再构建出子子进程,子子进程构建出子子子进程.... 这种就为进程链 进程扇:一个父进程构建出多个子进程,子进程都是由同一个父进程构建出来 23.1.2 进程链的构建 process_link.c /* 创建5个进程(包括父进程) */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int arg…
34.1 信号特点 信号的发生是随机的,但信号在何种条件下发生是可预测的 进程杠开始启动时,所有信号的处理方式要么默认,要么忽略:忽略是 SIGUSR1 和 SIGUSR2 两个信号,其他都采取默认方式(大多数是终止进程). 进程在调用 exec 函数后,原有信号的捕捉函数失效 子进程的诞生总是继承父进程的信号处理方式 在系统层面上信号的发生是可靠的 在Linux 中的可靠性只保证一次,进程在处理信号期间,若发生同类型的信号不会丢失(内核会保留),会被延迟处理 但同类型信号的多次发生只会保留一次…
信号: 1.       信号的作用: 背景: 进程之间通信比较麻烦. 但进程之间又必须通信,比如父子进程之间. 作用: 通知其他进程响应.进程之间的一种通信机制. 信号: 接受信号的进程马上停止,调用信号处理函数. 信号处理函数: 默认处理函数 打印信号信息,退出进程. 用户处理函数. 中断:接受信号的进程马上停止,有信号发生时,处理信号,进程中断,信号处理结束,返回进程继续执行. 软中断 案例: 1.进程之中,默认信号处理 2.进程之中,用户信号处理 3.中断 命令: kill –s 信号 …
31.1 SIGCHLD 信号 子进程状态发生变化(子进程结束)产生该信号,父进程需要使用 wait 调用来等待子进程结束并回收它. 避免僵尸进程 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <sys/wait.h> #include <unistd.h> void sig_handler(int signo) { printf("child p…