1信号的基本概念,发送信号kill
SIGHUP是一个信号
信号,事件通知,信号是异步发送的,信号被称为软件中断
信号是怎么产生的:
(a)某个进程发送给另外一个进程或者发送给自己
(b)由内核(操作系统)发送给某个进程
通过在键盘上输入命令ctr+c(中断信号) kill命令
b.2内存访问有问题,除数为0
信号名字,都是以SIG开头的,SIGHUP是终端断开信号
UNIX以及类UNIX操作系统(linux,freebsd,solaris);支持的信号数量各不相同10-60多之间
信号都是正整数常量
gcc
头文件,包含路径/usr/local/include/ /usr/include/
库文件连接路径 /usr/local/bin /usr/bin
sudo find / -name "signal.h" | xargs grep -in "SIGHUP"
xargs用来给其他命令传递参数
-i 忽略大小写
信号就是宏定义
通过kill命令来学习一些信号
kill :kill 进程id可以用来杀死进程 ;发个信号给进程,他的工作是发个信号给进程
kill可以给进程发送多种信号
ps -eo pid,ppid,sid,tty,pgrp,comm | grep -E 'bash|PID|nginx'
kill -l(数字)能发出与数字对应的信号SIGHUP信号
如果我们用kill -l进程id,那么就是往进程nginx发送SIGHUP终止信号
kill -数字 PID 能够发送出来多种信号
kill只是发个信号,而不是单纯杀死的意思
四:常用信号处理列举
五:信号处理的相关动作
当某个信号出现时,我们可以按三种方式之一进行处理
默认的动作
(1)执行默认动作
(2)忽略信号(不包括SIGKILL 和SIGSTOP)
kill -9 进程ID 一定能把这个进程杀掉的
(3)捕捉该信号,写个处理函数对该信号进行处理