nginx初步开发

1.信号基本概念

信号的基本概念工

信号是进程之间常用的通信手段, 信号:通知(事情通知),用来通知某个进程发生某个事情, 信号是突发事件,是异步发生的,也被称为“软件中断”。

2.信号如何产生

  1. 某个进程发送给另外一个进程或者发送给自己

  2. 由内核(操作系统)发送给某个进程
  • 通过在键盘输入命令ctrl+c(中断信号),kill命令
  • 内存访问异常,除数为0等,硬件都会检测到并且通知内核

查找某个信号命令:
sudo find / -name "signal.h" | xargs grep -in "SIGHUPY"

3.kill命令

kill 能给进程发送多种信号

详细查看进程命令:
ps-eo pid,ppid,sid,tty,pgrp,comm|grep-E'bash|PID|nginx

跟踪信号命令(显示进程收到的信号):
sudo strace -e trace=signal -p 1184

kill 进程id,向进程发送SIGTERM信号(终止信号)

kill -数字 进程id,发出跟这个数字对应的信号 例如 kill -1 1247发送SIGHUP信号给1247进程

4.进程的状态

查看进程状态命令:
ps -eo pid,ppid,sid,tty,pgrp,comm,stat | grep-E 'bash|PID|nginx'
(更详细):
ps aux | grep -E 'bash|PID]nginx'
aux是BSD风格显示格式

状态参数含义表:
在这里插入图片描述
SIGKILL(-9):
不能被忽略,这是杀死任意进程的可靠方法,不能被进程本身捕捉

SIGSTOP(-19):
不能被忽略,使进程停止运行,可以用SIGCONT继续运行,但进程被放入到了后台

5.信号处理的相关动作

当信号出现时,我们可以按以下三种方式之一进行处理:

  1. 执行系统默认动作,绝大多数信号的默认动作是杀死你这个进程;
  2. 调用系统函数忽略此信号(不包括SIGKILL和SIGSTOP)
  3. 编写处理函数来处理,代替缺省动作(不包括SIGKILL和SIGSTOP)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值