Index: CloudConnect/main.cpp =================================================================== diff -u -r6d2ef8c97f4bb34204e95811839b3995000c47c1 -rb47dcc8b37ff07a7efec4dffd0ab1c6f63e5e614 --- CloudConnect/main.cpp (.../main.cpp) (revision 6d2ef8c97f4bb34204e95811839b3995000c47c1) +++ CloudConnect/main.cpp (.../main.cpp) (revision b47dcc8b37ff07a7efec4dffd0ab1c6f63e5e614) @@ -36,7 +36,13 @@ QSocketNotifier notifier(sfd, QSocketNotifier::Read); QObject::connect(¬ifier, &QSocketNotifier::activated, [&](int fd) { struct signalfd_siginfo info{}; - (void)read(fd, &info, sizeof(info)); + // signalfd delivers whole signalfd_siginfo records; a short read leaves + // info zeroed, so quitting on one would report no signal at all. + const ssize_t bytes = read(fd, &info, sizeof(info)); + if (bytes != sizeof(info)) { + qWarning("Short read from signalfd (%zd bytes); ignoring", bytes); + return; + } if (info.ssi_signo == SIGINT) { log << "Application terminated by SIGINT"; }