gpt4 book ai didi

c++ - 注销时应用程序不会退出

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:59 25 4
gpt4 key购买 nike

我想问一下用户注销时调用的信号是什么?我有一个 Qt gui 应用程序,它具有 SIGTERMSIGHUP 信号的处理程序。该应用程序还有自己的关闭事件处理程序,因此用户无法通过单击“X”来关闭它。问题是,当用户注销时,ubuntu 会挂起(任务栏上的图标消失,但进程继续运行)并且不允许用户注销,因为(imo)它等待进程终止。当我使用 kill -15 'myapp' 命令时,应用程序会按预期正常关闭,因此问题不应出现在我的处理程序中。

static int setupHandlers(){
struct sigaction hup,term;

hup.sa_handler = signalHandler;
sigemptyset(&hup.sa_mask);
hup.sa_flags = 0;

if (sigaction(SIGHUP, &hup, 0) > 0){
return 1;
}

term.sa_handler = signalHandler;
sigemptyset(&term.sa_mask);

if (sigaction(SIGTERM, &term, 0) > 0){
return 2;
}

return 0;
}

signalHandler 只是调用 exit(0) (也尝试过 _exit(0)abort())

最佳答案

您可以处理 3 个标准终止信号 - SIGINT、SIGQUIT 和 SIGTERM。尝试订阅其中的每一个并查看。

关于c++ - 注销时应用程序不会退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com