video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2019-12-30 1ca362aaad94f5017fa4607a881b80ef327679ba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _APP_RECORD_SERVICE_SIGNAL_H_
#define _APP_RECORD_SERVICE_SIGNAL_H_
 
#include <signal.h>
#include <sys/types.h>  
#include <sys/wait.h>  
#include "ffmpeg/log/log.hpp"
 
namespace common{
 
    static bool quit = false;
 
    static void sigroutine(int signo){
        switch(signo){
            case SIGINT:
            case SIGHUP:
            case SIGTERM:
                quit = true;
                logif::logIt("\nBIN Recv SIGINIT\n");
                break;
            case SIGCHLD:
            {
                int status;
                pid_t pid = -1;
                while((pid = waitpid(-1, &status, WNOHANG)) > 0){
                    logif::logIt("\nRecv Subprocess %d Quit\n", pid);
                }
            }
            default:
                break;
        }
    }
 
    static void signal_init(){
        signal(SIGPIPE, SIG_IGN);
 
        signal(SIGINT, sigroutine);
        signal(SIGHUP, sigroutine);
        signal(SIGTERM, sigroutine);
        
        signal(SIGCHLD, sigroutine);
    }
}
#endif