对Linux 下 SIGUSR1 与 SIGUSR2 的理解

简介:

学习了网络上的这篇文章:

http://liyong-zone.blog.sohu.com/102060659.html

致谢。

编译的时候用:

g++ -o testsig.o testsig.cpp

试着运行了一下:

复制代码
[root@localhost test]# cat testsig.cpp
#include <iostream>
#include <signal.h>
using namespace std;

void CatchSigUsr1(int sig)
{
    cout<<"SIGUSR1 Caught"<<endl;
}

void CatchSigUsr2(int sig)
{
    cout<<"SIGUSR2 Caught"<<endl;
    exit(0);
}

int main()
{
    signal(SIGUSR1, CatchSigUsr1);
    signal(SIGUSR2, CatchSigUsr2);
    while(1)
    {
        sleep(1);
    }
}
[root@localhost test]# 
复制代码

就是说 ,从os 级别上如果发kill -s SIGUSR1 或者  kill -s SIGUSR2 ,确实可以激活相应的程序(CatchSigUsr1,CatchSigUsr2)

也可以改成这样:

复制代码
[root@localhost test]# cat testsig.cpp
#include <iostream>
#include <signal.h>
using namespace std;

void CatchSigUsr1(int sig)
{
    cout<<"SIGUSR1 Caught"<<endl;
}

void CatchSigUsr2(int sig)
{
    cout<<"SIGUSR2 Caught"<<endl;
    exit(0);
}

void sigHandler(int signum)
{
   if (signum==SIGUSR1)
        CatchSigUsr1(signum);

   if (signum==SIGUSR2)
        CatchSigUsr2(signum);
}

int main()
{
    signal(SIGUSR1, sigHandler);
    signal(SIGUSR2, sigHandler);
    while(1)
    {
        sleep(1);
    }
}
[root@localhost test]# 
复制代码





目录
相关文章
|
2天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
|
3天前
|
监控 Linux 数据处理
|
3天前
|
编解码 Ubuntu Linux
|
3天前
|
JSON Linux 数据格式
Linux命令发送http
请注意,`curl`命令非常灵活,可以根据您的需求进行多种配置和自定义。您可以查看 `curl`命令的文档以获取更多详细信息。
10 0
|
4天前
|
安全 Linux 测试技术
|
4天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
10 2
|
5天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南
|
5天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
5天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
19 0
|
5天前
|
安全 Linux Shell
linux基础命令详解
linux基础命令详解
12 0