Call pprocess_exit() and block the calling thread to properly
terminate the process upon SIG_TERM.
Signed-off-by: Michalis Pappas <michalis@unikraft.io>
Approved-by: Andrei Tatar <andrei@unikraft.io>
Reviewed-by: Andrei Tatar <andrei@unikraft.io>
Reviewed-by: Sergiu Moga <sergiu@unikraft.io>
GitHub-Closes: #1630
#include <uk/process.h>
#include <uk/syscall.h>
+#include "process.h"
#include "sigset.h"
#include "signal.h"
#include "siginfo.h"
static void uk_sigact_term(int __unused sig)
{
- uk_pr_warn("tid %d terminated by signal\n", uk_sys_gettid());
- pprocess_kill(uk_pprocess_current());
+ struct posix_process *pprocess;
+
+ pprocess = uk_pprocess_current();
+ UK_ASSERT(pprocess);
+
+ uk_pr_info("pid: %d terminated by signal\n", pprocess->pid);
+
+ pprocess_exit(pprocess, POSIX_PROCESS_KILLED, sig);
+ uk_sched_thread_exit(); /* noreturn */
}
static void uk_sigact_ign(int __unused sig)