diff --git a/include/signal.h b/include/signal.h index 5697bbbc7f4..1846df2714b 100644 --- a/include/signal.h +++ b/include/signal.h @@ -175,6 +175,8 @@ #ifdef CONFIG_SIG_SIGKILL_ACTION # define SIGKILL CONFIG_SIG_KILL # define SIGINT CONFIG_SIG_INT +# define SIGQUIT CONFIG_SIG_QUIT +# define SIGTERM CONFIG_SIG_TERM #endif #ifndef CONFIG_SIG_SIGPIPE diff --git a/libs/libc/string/lib_strsignal.c b/libs/libc/string/lib_strsignal.c index 53b3b544d2b..9b8b3e18db8 100644 --- a/libs/libc/string/lib_strsignal.c +++ b/libs/libc/string/lib_strsignal.c @@ -163,6 +163,16 @@ FAR char *strsignal(int signum) return (FAR char *)"SIGINT"; #endif +#ifdef SIGQUIT + case SIGQUIT: + return (FAR char *)"SIGQUIT"; +#endif + +#ifdef SIGTERM + case SIGTERM: + return (FAR char *)"SIGTERM"; +#endif + /* Non-standard signals */ #ifdef SIGCONDTIMEDOUT diff --git a/sched/Kconfig b/sched/Kconfig index 1c94c6955d5..f2cb4156683 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -1353,7 +1353,7 @@ config SIG_SIGSTOP_ACTION task) and SIGCONT (resume the task). config SIG_SIGKILL_ACTION - bool "SIGINT and SIGKILL" + bool "SIGINT SIGKILL SIGQUIT and SIGTERM" default y ---help--- Enable the default action for SIGINT and SIGKILL (terminate the @@ -1449,6 +1449,22 @@ config SIG_INT The SIGINT signal is sent to cause a task termination event. SIGINT may be ignored or caught by the receiving task. +config SIG_QUIT + int "SIGQUIT" + default 11 + depends on SIG_SIGKILL_ACTION + ---help--- + The SIGINT signal is sent to cause a task termination event. + SIGQUIT may be ignored or caught by the receiving task. + +config SIG_TERM + int "SIGTERM" + default 12 + depends on SIG_SIGKILL_ACTION + ---help--- + The SIGINT signal is sent to cause a task termination event. + SIGTERM may be ignored or caught by the receiving task. + endif # SIG_DEFAULT config SIG_PIPE diff --git a/sched/signal/sig_default.c b/sched/signal/sig_default.c index 70a2238fb9d..5dd018a0329 100644 --- a/sched/signal/sig_default.c +++ b/sched/signal/sig_default.c @@ -140,6 +140,8 @@ static const struct nxsig_defaction_s g_defactions[] = #ifdef CONFIG_SIG_SIGKILL_ACTION { SIGINT, 0, nxsig_abnormal_termination }, { SIGKILL, SIG_FLAG_NOCATCH, nxsig_abnormal_termination }, + { SIGQUIT, 0, nxsig_abnormal_termination }, + { SIGTERM, 0, nxsig_abnormal_termination }, #endif #ifdef CONFIG_SIG_SIGPIPE_ACTION { SIGPIPE, 0, nxsig_abnormal_termination }