码迷,mamicode.com
首页 > 其他好文 > 详细

caffe之路-SIGTERM信号捕捉

时间:2017-11-30 15:04:06      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:handle   使用   hot   nal   href   方法   vlc   信号捕捉   ref   

Caffe在1.0版本仅支持两种信号的处理: 1) SIGHUP 2) SIGINT

  • SIGHUP:caffe接收到此信号后进行snapshot,并不会中断caffe的训练.
  • SIGINT:caffe接收到此信号后进行snapshot,并退出.

参考issue #2012对这个问题的讨论.在PR 2253中对这两种信号做了支持,在Solver中回调信号检查函数.

当我们使用kill PID来停止caffe进程时发送的是SIGTERM(15)信号,caffe并没有处理,将直接退出.
如果我们想让它捕捉该信号并进行snapshot,可以添加代码使其与SIGINT的处理一致.
具体方法如下:
编辑src/caffe/util/signal_handler.cpp

void handle_signal(int signal) {
    switch (signal) {
    case SIGHUP:
      got_sighup = true;
      break;
    case SIGINT:
      got_sigint = true;
      break;
    case SIGTERM:
      got_sigint = true; // 当作SIGINT
      break;
    }
}

HookupHandler 与 UnhookHandler 中注册和取消SIGTERM:
sigaction(SIGTERM, &sa, NULL)

涉及基本的C语言信号处理函数,不再赘述.

caffe之路-SIGTERM信号捕捉

标签:handle   使用   hot   nal   href   方法   vlc   信号捕捉   ref   

原文地址:http://www.cnblogs.com/makefile/p/caffe-sigterm.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!