我发送SIGTERM,但是总不跳出循环,不知为什么,大虾们请看看。。。

static sig_atomic_t graceful_quit = 0;

void terminate(int signum)

{

INFO_LOG("Received signal %s, Terminate the ptRouter program"\

" gracefully..", strsignal(signum));

graceful_quit = 1;

return;

}

int main(int argc, char **argv)

{

int fifo_ctrl, fifo_data;

int recvnum = 0;

struct dlog_msg dmsg;

char buff[MAXLINE];

// Open control fifo

if ((mkfifo(DLOG_FIFO_ROUTER_CTRL,0666) == -1) && (errno != EEXIST))

{

CRIT_LOG("dlog_create mkfifo fail: %m (%d)",errno);

exit(1);

}

if ((fifo_ctrl = open(DLOG_FIFO_ROUTER_CTRL,O_NONBLOCK | O_RDWR)) == -1)

{

CRIT_LOG("dlog_create fifo open fail: %m (%d)",errno);

exit(1);

}

DEBUG_LOG("conrtol fifo opened");

// Open data fifo

if ((mkfifo(DLOG_FIFO_ROUTER_DATA,0666) == -1) && (errno != EEXIST))

{

CRIT_LOG("dlog_create mkfifo fail: %m (%d)",errno);

exit(1);

}

if ((fifo_data = open(DLOG_FIFO_ROUTER_DATA, O_RDWR)) == -1)

{

CRIT_LOG("dlog_create fifo open fail: %m (%d)",errno);

exit(1);

}

if (signal(SIGTERM, terminate) == SIG_ERR)

{

CRIT_LOG("Unable to install the new signal handler for signal %s\n",

strsignal(SIGTERM));

exit(1);

}

DEBUG_LOG("message send to ptSession");

while ((recvnum = read(fifo_data,buff,MAXLINE)) > 0)

{

DEBUG_LOG("message from ptSession %d", recvnum);

if (graceful_quit)

{

DEBUG_LOG("Terminate gracefully");

break;

}

int retStatus = 0;

retStatus = write(STDOUTPUT, buff, recvnum);

if (retStatus == -1)

{

CRIT_LOG("Write to stdout failed %d", errno);

break;

}

}

return 0;

}

linux64 汇编 signal,signal问题,SIGTERM被忽略?相关推荐

  1. 【Flink】RECEIVED SIGNAL 15: SIG SIGTERM. Shutting down as requested.

    1.概述 一个Flink任务运行的时候报错,任务总是自动莫名其妙的中断 这里主要看到命令行中有这样一句话 RECEIVED SIGNAL 15: SIG SIGTERM. Shutting down ...

  2. Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知(转)...

    信号  ( signal ) 机制是 UNIX 系统中最为古老的进程间通信机制,很多条件可以产生一个信号. 信号的产生: 1,当用户按下某些按键时,产生信号. 2,硬件异常产生信号:除数为 0 ,无效 ...

  3. sigterm信号_Golang之信号处理(Signal)

    1.使用场景 实际项目中,我们希望修改了配置文件后,但又不想通过重启进程让它重新加载配置文件,可以使用signal的方式进行信号传递,或者我们希望通过信号控制,实现一种优雅的退出方式.Golang为我 ...

  4. 【FLINK】RECEIVED SIGNAL 15: SIGTERM. Shutting down as requested.

    参考以下两篇博客,定位解决了问题,[备注学习] 本人使用的版本是flink 1.10 1.Flink任务物理内存溢出问题定位 问题现象 一个使用10秒滚动窗口的任务在平稳运行一段时间之后出现了频繁的重 ...

  5. golang signal 信号简介

    目录 1.1. 基本概念 1.2. Go 对信号的处理 1.2.1. Go 程序对信号的默认行为 1.2.2. 改变信号的默认行为 1.2.3. SIGPIPE 1.2.4. cgo 注意事项 1.3 ...

  6. python小黄人程序_python signal信号

    作用:发送和接收异步系统信号 信号是一个操作系统特性,它提供了一个途径可以通知程序发生了一个事件并异步处理这个事件.信号可以由系统本身生成,也可以从一个进程发送到另一个进程. 由于信号会中断程序的正常 ...

  7. linux python 信号,Python模块之信号(signal)

    在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...

  8. linux signal 处理

    linux signal 处理 说明: 本文主要翻译自ULK 3rd chapter 11. 主要受 http://blog.csdn.net/yunsongice 影响,故发表在csdn. 另外,本 ...

  9. C++ - C++ signal的使用

    1. 头文件 #include <signal.h> 2. 功能 设置某一信号的对应动作 3. 函数原型 void (*signal(int signum,void(* handler)( ...

最新文章

  1. 深入理解JDK动态代理
  2. DLNg[结构化ML项目]第二周迁移学习+多任务学习
  3. em oracle 安装,oracle-EM安装
  4. iview-admin框架运行步骤
  5. Android中设置输入法为数字输入
  6. 跟踪 linux 内核调用_Linux用户和内核空间中的动态跟踪
  7. Spring Boot 配置文件之前缀属性注入
  8. java以下属于合法标识符的是_2012年计算机二级Java合法标识符章节练习题及答案...
  9. 最近找到了一个免费的python教程,两周学会了python开发
  10. 在没有 IIS 的条件下运行 ASMX(WebService)
  11. 使用ElasticSearch6.0快速实现全文搜索功能
  12. 《水经注全国POI兴趣点1.0》发布
  13. 【技术知识】SVAC 2.0安全技术浅析
  14. Flutter 蓝牙便携打印插件
  15. SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器
  16. 银行从业资格考试通过后如何申请证书
  17. 什么是区块链的共识机制?
  18. oh-my-posh安装过程问题及注意事项
  19. Java集合源码系列(1)---- ArrayList详解
  20. html--div+css样式布局(div+span)

热门文章

  1. 1096:在霍格沃茨找零钱
  2. Android模拟器学framework和driver之传感器篇3(Android HAL)
  3. Mysql能删了重装吗_【MySQL】干净删除MySQL,无报错重装
  4. 计算机学院嘉年华标题,计算机学院研究生2017年“元旦嘉年华”活动举办
  5. 中断下半部——工作队列、软件中断、tasklet
  6. 蓝桥杯真题31日冲刺国一 | 每日题解报告 第十七天
  7. onmouseout方法
  8. 多线程(MultiThread)——原子性(Atomicity)
  9. Transaction: atomicity, consistency, separability, persistence
  10. Jmockit 使用教程