【Linux】进程信号_1

简介: 【Linux】进程信号_1

八、进程信号

1.信号

信号和信号量之间没有任何关系。信号是Linux系统提供的让用户/进程给其他进程发送异步信息的一种方式。

常见信号:

当信号产生时,可选的处理方式有三种:①忽略此信号。②执行该信号的默认处理动作。③自定义处理信号,这种方式称为捕捉(Catch)一个信号。

可以使用 kill -9 杀掉指定进程。

kill -2 可以终止指定进程。不是杀死的。

接下来我们让进程对2号信号做出自定义行为。需要使用 signal 函数。

Makefile

testSig:Signal.cc
  g++ -o $@ $^ -std=c++11
.PHONY:clean
clean:
  rm -f testSig

Signal.cc

#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
using namespace std;
void handler(int signo)
{
    // 打印收到的信号
    cout << "get a signal : " << signo << endl;
}
int main()
{
    signal(SIGINT, handler);
    
    while (true)
    {
        cout << "I am activing, pid : " << getpid() << endl;
        sleep(1);
    }
    return 0;
}

此时进程当接收到2号信号时,就输出了一句话并没有终止进程。

// 忽略信号 ignore
    signal(SIGINT, SIG_IGN);

signal 函数这样设置时,就代表将 SIGINT 信号忽略。

信号可以由 kill 命令产生,也能够从键盘上产生。比如 键盘上的 Ctrl + C 会被操作系统解释成2号信号。


未完待续

目录
相关文章
|
22小时前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
|
2天前
|
存储 Shell Linux
Linux进程概念(下)
本文详细的介绍了环境变量和进程空间的概念及其相关的知识。
11 0
Linux进程概念(下)
|
1天前
|
监控 Linux
深入了解Linux的pmap命令:进程内存映射的利器
`pmap`是Linux下分析进程内存映射的工具,显示内存区域、权限、大小等信息。通过`/proc/[pid]/maps`获取数据,特点包括详细、实时和灵活。参数如`-x`显示扩展信息,`-d`显示设备。示例:`pmap -x 1234`查看进程1234的映射。注意权限、实时性和准确性。结合其他工具定期监控,排查内存问题。
|
1天前
|
网络协议 Linux Shell
技术笔记:Linux中的两种守护进程standalone和xinetd
技术笔记:Linux中的两种守护进程standalone和xinetd
|
1天前
|
算法 Linux 编译器
技术笔记:LINUX2.6.32下的进程分析
技术笔记:LINUX2.6.32下的进程分析
|
1天前
|
监控 网络协议 关系型数据库
如何在Linux中查看正在运行的进程以及过滤特定端口和进程名称
如何在Linux中查看正在运行的进程以及过滤特定端口和进程名称
4 0
|
2天前
|
Linux
linux指令按端口查找和杀死进程
linux指令按端口查找和杀死进程
10 0
|
2天前
|
Unix Linux 调度
一篇文章讲明白linux僵死进程
一篇文章讲明白linux僵死进程
|
1月前
|
Linux Shell 调度
【Linux】7. 进程概念
【Linux】7. 进程概念
49 3
|
1月前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解