c+ signal

发布时间 2023-12-30 08:35:07作者: lydstory
#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;
}