Group :: System/Libraries
RPM: kf5-kcrash
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: alt-catch-sigterm.patch
Download
Download
--- a/kcrash/src/kcrash.cpp
+++ b/kcrash/src/kcrash.cpp
@@ -363,6 +363,10 @@ KCrash::setCrashHandler(HandlerType hand
sigset_t mask;
sigemptyset(&mask);
+#ifdef SIGTERM
+ signal(SIGTERM, handler);
+ sigaddset(&mask, SIGTERM);
+#endif
#ifdef SIGSEGV
signal(SIGSEGV, handler);
sigaddset(&mask, SIGSEGV);
@@ -430,7 +434,7 @@ KCrash::defaultCrashHandler(int sig)
if (s_emergencySaveFunction) {
s_emergencySaveFunction(sig);
}
- if ((s_flags & AutoRestart) && s_autoRestartCommandLine) {
+ if ((s_flags & AutoRestart) && s_autoRestartCommandLine && (sig != SIGTERM || !strcmp((s_appName ? s_appName.get() : "<unknown>"), "plasmashell"))) {
QThread::sleep(1);
startProcess(s_autoRestartCommandLine.argc, const_cast<const char **>(s_autoRestartCommandLine.argv), false);
}
@@ -465,7 +469,7 @@ KCrash::defaultCrashHandler(int sig)
s_appName ? s_appName.get() : "<unknown>");
#endif
- if (s_launchDrKonqi != 1) {
+ if (sig == SIGTERM || s_launchDrKonqi != 1) {
setCrashHandler(nullptr);
#if !defined(Q_OS_WIN)
raise(sig); // dump core, or whatever is the default action for this signal.