首页 > 系统相关 >Linux信号基本概念

Linux信号基本概念

时间:2023-11-19 09:46:10浏览次数:35  
标签:coredump 程序 默认 终止 信号 Linux 进程 基本概念

信号分为两大类:

  • 标准信号,用于内核向进程通知事件,信号范围为1~31
  • 实时信号

信号产生后,会在稍后被传递给某进程,进程也会采取某措施来响应信号。在产生和到达期间,信号处于pending(等待)状态

有时需要确保一段代码不被传递来的信号所中断,这时可以把信号添加到进程的信号掩码中,阻塞该组信号的到达。如果所产生的信号属于阻塞之列,那么信号将保持pending状态,直到后面对其解除阻塞(从信号掩码中移除)。进程可使用各种系统调用对其信号掩码添加和移除信号。

根据信号的不同,进程可以对信号执行的默认操作:

  • 忽略信号:内核将信号丢弃,信号对进程没有产生任何影响(进程都不知道曾出现过该信号)
  • 终止进程:进程异常终止,不是因调用exit()而发生的正常终止
  • 产生coredump文件,同时终止进程
  • 暂停进程
  • 恢复进程:暂停之后恢复执行

除了采取默认行为之外,进程也能改变信号的响应行为,将此称为对信号的disposition(处置),程序可以将对信号的disposition设置为:

  • 采取默认行为
  • 忽略信号:适用于默认行为为终止进程的信号
  • 执行信号处理器程序:用户自定义

通知内核应当去调用某处理器程序的行为,通常称之为安装信号处理器程序,调用信号处理器程序以响应传递来的信号,称之为信号已处理或已捕获

无法将信号disposition设置为终止进程或者coredump(除非是默认行为),效果最为近似的是为信号安装一个处理器程序,并于其中调用exit()或者abort()。abort()函数为进程产生一个SIGABRT信号,该信号将引发进程coredump并终止

常见的信号值及其默认行为

信号名 信号值 描述 默认行为
SIGINT 2 终端中断 term
SIGABRT 6 终止进程 core
SIGKILL 9 必杀 term
SIGTERM 15 终止进程 term
SIGSTOP 19 必停 stop
  • kill -6让进程core,会产生coredump文件,一般用于杀死正常执行的程序
  • kill -9直接杀死进程,一般用于杀死僵尸进程
  • Ctrl+C产生SIGINT信号

标签:coredump,程序,默认,终止,信号,Linux,进程,基本概念
From: https://www.cnblogs.com/SchemaL/p/17840758.html

相关文章

  • 信号的机制——信号的发送与处理
    对于硬件触发的,无论是中断,还是信号,肯定是先到内核的,然后内核对于中断和信号处理方式不同。一个是完全在内核里面处理完毕,一个是将信号放在对应的进程task_struct里信号相关的数据结构里面,然后等待进程在用户态去处理。当然有些严重的信号,内核会把进程干掉。但是,这也能看出来,中断......
  • linux - grep 查找匹配
    在文件中查找匹配的字符串或者模式1.在单个文件中查找给定的字符串grep"string"filename2.在多个文件中查找指定的字符串grep"this"demo_*3.-i选项忽略大小写敏感进行查找grep-i"string"filename4.使用正则表达式进行匹配查找grep"lines.*empty"demo_file5......
  • Linux与Sre入门建议
    https://www.w3schools.com/go/index.php......
  • USB基本概念二
    Q1.USB总线驱动是干嘛用的?A1.1.识别USB设备2.给USB设备找到并安装对应的驱动程序3.提供USB读写函数新接入的USB设备默认地址(编号)为0,在未分配新编号前,PC主机使用0地址与其通信。(指匹配到驱动之前,会先与USB设备的prot0进行沟通,然后配置,当总线添加设备后,与驱动匹配后,择交给驱......
  • linux安装最新版本composer
    wgethttps://getcomposer.org/composer.pharmvcomposer.pharcomposerchmod+xcomposersudomvcomposer/usr/bin/composer-V切换为中国源composerconfig-grepo.packagistcomposerhttps://packagist.phpcomposer.com......
  • 一款带数字传输信号的OVP芯片
    基本概述今天给大家介绍的一款芯片是OVP,相比于传统的OVP芯片来说,这款芯片新增了数字信号控制,通过外部的GPIO口进行控制,达到输入与输出信号的产生。YHM2009这款OVP芯片具有较低的导通电阻(23mΩ),输入电压超过过电压阈值将导致内部MOSFET关闭,防止过多电压损坏下游设备。典型应用电路过......
  • 第十二周Linux学习报告
    本周学习的是上周没有讲完的磁盘管理以及新学习的文件查找、打包压缩及解压磁盘管理1、修改挂载点的配置文件,目录在/etc/fstab,使用vim修 文件查找、打包压缩以及解压1、which命令查找符合条件的命令文件,可查看其是否存在以及执行的位置  2、locate命令可以让用户快速......
  • OS-Linux-程序安装与依赖
    OS-Linux-程序安装与依赖从源下载安装包sudoaptdownloadmysql查看安装依赖:apt-cacheapt-cachedependsxxx查看已安装程序依赖,如nginxsudoapt-getinstall--reinstall-d'apt-cachedependsnginxIgrep"依赖”lcut-d:-f2Itr-d“"......
  • 开启linux网卡
    查看目录,如果有ifcfg-eth0,ifcfg-ens33之类的,表示有网卡但不确定是否开启,如果使用的vmware,且有桌面的化,可以用鼠标点一点就可以开启网络[root@bogonnetwork-scripts]#pwd/etc/sysconfig/network-scripts[root@bogonnetwork-scripts]#lsifcfg-eth0ifdown-ipppifdown-r......
  • Linux要删除的目录下出现了~目录怎么办
    可直接用以下命令删除’~’目录,而不影响当前用户主目录rm -rf \~`rm-rf\~`命令的作用是递归地删除名为‘~’的目录。解释一下这个命令的各个部分:-`rm`是Linux中用于删除文件和目录的命令。-`-r`选项表示递归删除,即删除目录及其所有内容。-`-f`选项表示强制删......