shell中需要掌握的几个信号(shell 进阶)

简介: shell中需要掌握的几个信号(shell 进阶)

kill -l 可以查看当前所有的信号量

编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。

不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。

6852ea02064e4e499aa18c0395a58322.png注意:

  1. kill -KILL 15366 、kill -SIGKILL 15366 、kill -9 15366三者等价
  2. 登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组后台进程组,一般都属于这个 Session。当用户退出linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也能继续下载。
  3. HUP信号量如果是发送给后台开启的进程,则是加载配置文件,例如nginx、httpd...这些服务经常会用到这个信号量
  4. kill -15 和kill -9的区别是SIGNKILL(9) 的效果是立即杀死进程. 该信号不能被阻塞, 处理和忽略。
  5. SIGNTERM(15) 的效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。
  6. 119dfc495c6e4482a51e540a62964975.pngCtrl+C组合键会生成SIGINT信号,并将其发送给当前在shell中运行的所有进程。
  7. Ctrl+Z组合键会生成一个SIGTSTP信号,停止shell中运行的任何进程。停止(stopping)进程跟终止(terminating)进程不同:停止进程会让程序继续保留在内存中,并能从上次停止的位置继续运行
  8. bash shell会忽略收到的任何SIGQUIT (3)和SIGTERM (15)信号(正因为这样,交互式shell才不会被意外终止), killall bash 不会杀死自身bash的原因就是这个.  

e5f3453b335c4554ac1149f6e14af4d5.png

08294d3a223949238096afab458f869f.png

a1bfa4ec7ec945b9a7f60ba0aff6e891.png在进程虚拟地址空间中,并非所有的地址范围都需要页表条目。通常情况下,由于可能存在大段的虚拟地址空间并未投入使用,故而也无必要为其维护相应的页表条目。若进程试图访问的地址并无页表条目与之对应,那么进程将收到一个 SIGSEGV(11) 信号。

目录
相关文章
|
Shell Linux
Linux Shell 进阶:探索高级命令和脚本编程技巧
Linux Shell不仅仅是一个命令解释器,它还提供了许多强大的高级命令和脚本编程技巧,能够帮助用户更高效地管理系统和处理数据。在这篇文章中,我们将深入探讨Linux Shell的高级功能。
256 0
|
7月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
112 0
|
Shell Linux
shell脚本学习-进阶
shell脚本学习-进阶
71 0
|
7月前
|
存储 Shell Linux
第九章 Shell信号发送与捕捉
第九章 Shell信号发送与捕捉
|
7月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 终止或向进程发送信号 skill命令 使用指南
【Shell 命令集合 系统管理 】Linux 终止或向进程发送信号 skill命令 使用指南
101 0
|
7月前
|
Shell Linux
在Linux Shell中,信号
在Linux Shell中,信号
49 1
|
Shell 程序员
shell中的信号捕获trap(shell 进阶)
shell中的信号捕获trap(shell 进阶)
162 0
shell中的信号捕获trap(shell 进阶)
|
运维 监控 应用服务中间件
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
1006 0
|
运维 Shell Linux
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(一)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)
713 0
|
Shell
如何写一个类似于ls的命令?(shell进阶)
如何写一个类似于ls的命令?(shell进阶)
100 0