#include <iostream> #include <string> using namespace std; typedef uint32_t u32; typedef uint8_t u8; typedef uint16_t u16; #include <signal.h> int deamon_run = 1; /*进程关闭信号处理*/ static void sig_handler(const int sig) { int ret; if (sig != SIGTERM && sig != SIGQUIT && sig != SIGINT) return; if (deamon_run != 0) deamon_run = 0; printf("signal(%d) received, try to exit deamon gracefully ..\n", sig); } int main() { /*进程退出信号监视*/ if (signal(SIGTERM, sig_handler) == SIG_ERR) cout<<"can not catch SIGTERM"<<endl; if (signal(SIGQUIT, sig_handler) == SIG_ERR) cout<<"can not catch SIGQUIT"<<endl; if (signal(SIGINT, sig_handler) == SIG_ERR) cout<<"can not catch SIGINT"<<endl; // while (deamon_run){ // } return 0; }