#ifndef _APP_RECORD_SERVICE_SIGNAL_H_ #define _APP_RECORD_SERVICE_SIGNAL_H_ #include #include #include #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