首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀死-SIGTERM和KILLSIG:安全终止应用程序

杀死-SIGTERM和KILLSIG:安全终止应用程序
EN

Stack Overflow用户
提问于 2015-11-03 15:10:39
回答 1查看 7.5K关注 0票数 3

在Linux系统上,信号-KILLTERM发送一个允许应用程序安全关闭的信号。这些问题可能有点理论性,但我想要理解它们。

  1. 当系统发送终止信号时,在哪里发送?
  2. 是什么让进程或应用程序有时间“安全”终止?
  3. 是否有一个子进程,或类似的进程,运行在一个应用程序的后台寻找这个信号?

这些问题来自于Linux看门狗,在阅读手册页时,我看到监督狗的过程是首先向给定的PID发送终止信号,然后发送杀死-9信号来强制它。我想要能够利用内建的安全监督狗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 15:44:43

看这段代码

代码语言:javascript
复制
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>

void cleanUp(){ // Do whatever you want here
    printf("Safely terminating \n");
}

void hand(int sig){ // called when you are sent SIGTERM
    /*
    Here you can safely terminate..
    */
    atexit(cleanUp); // call cleanUp at exit.
    exit(0);
}

int main(){
    signal(SIGTERM, hand); //Assign function to be called on SIGTERM
    /*
    Your code goes here.
    I have put an infinite loop for demonstration.
    */
    printf("Started execution..\n");
    for(;;);
}

这显示了在向应用程序传递信号时如何分配调用函数。

若要将信号SIGTERM传递到此代码,请执行以下操作,

代码语言:javascript
复制
kill -SIGTERM <pid>

在这里,<pid>标识正在运行的程序的进程id。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33502525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档