linux中,在定时器信号的处理函数中如何结束整个程序的运行

linux中,在定时器信号的处理函数中怎么结束整个程序的运行?
signal(SIGALRM, handler);


void hander(int sig)
{
  ...

  if(...) exit(0);
   
  ...
}

在定时器信号的处理函数中使用exit函数退出程序后,结果导致终端崩溃,有没有其他办法在信号处理函数中终止整个程序的运行?

------解决方案--------------------
你的程序此时在做什么
------解决方案--------------------
信号处理函数里退出程序肯定是有问题的,信号处理函数执行完成后,程序还需要进入内核空间,然后才回到用户空间的

通过信号量等方式通知主线程,在主线程里exit吧