linux 信号_linux的信号处理

cb66ea631395c26d653fbda50aa50c68.png

linux利用信号与运行在系统中的进程进行通信。可以通过对脚本进行编程,使其在收到特定信号时执行某些命令,从而控制shell脚本的操作。

linux系统信号有30多个,下表中列出来最常见的几个linux系统信号

信号

描述

1SIGHUP挂起进程
2SIGINT终止进程
3SIGQUIT停止进程
9SIGKILL无条件终止进程
15SIGTERM尽可能的终止进程
17SIGSTOP无条件的停止进程,但不是终止进程
18SIGSTP停止或暂停进程,但不终止进程
19SIGCONT继续运行停止的进程

生成信号

bash shell允许用键盘上的组合键生成两种基本的linux信号。这种特性在需要停止或暂停失控程序时非常方便。

1.中断进程

Ctrl+C组合键会生成SIGINT信号,并将其发送给当前在shell中运行的所有进程。

演示代码如下:

80284af4e66f03f8c355191d52a86c05.png

2.暂停进程

Ctrl+Z组合键会生成一个SIGTSTP信号,停止shell中运行的任何程序,停止进程和终止进程不同,停止进程会让程序继续保留在内存中,并能从上次停止的位置继续运行。

演示代码如下:

abac4975206ef6931e034a24d11224f3.png

方括号中的[1]是shell分配的作业号,shell将运行的每一个进程称为作业,并为每一个作业分配唯一的作业号。它会为第一个作业分配作业号1,第二个作业分配作业号2,以此类推。

可以通过ps -l命令查看已经停止的作业,在S列中,ps命令将已经停止的作业的状态显示为T。

如果在已经有停止作业的状态下,仍旧想退出shell,可以使用kill命令来发送一个SIGKILL信号来终止它。

演示代码如下:

014ef6b38a07f5ca67f21070a35bd010.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值