diff options
author | turret <turret@duck.com> | 2024-01-11 17:36:37 -0600 |
---|---|---|
committer | turret <turret@duck.com> | 2024-01-11 17:36:37 -0600 |
commit | 3ed1e74e16da720dba46d117b12e21b9405ac569 (patch) | |
tree | da91ba432d5a152765a13395a7c3cf1a7bc6a2e2 | |
parent | 1b61d9ddc1afdddd429e10eeda90a31ae7e69261 (diff) | |
download | discord-bot-skeleton-3ed1e74e16da720dba46d117b12e21b9405ac569.tar.gz discord-bot-skeleton-3ed1e74e16da720dba46d117b12e21b9405ac569.tar.bz2 discord-bot-skeleton-3ed1e74e16da720dba46d117b12e21b9405ac569.zip |
init: panic on keyboard interrupt
also: change panic signal to be SIGKILL as sigint being caught would
result in a loop
-rw-r--r-- | init/init.c | 3 | ||||
-rw-r--r-- | init/log.c | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/init/init.c b/init/init.c index e82a504..ad1e182 100644 --- a/init/init.c +++ b/init/init.c @@ -99,6 +99,7 @@ int main(void) siginfo_t siginfo; static sigset_t set; sigaddset(&set, SIGCHLD); + sigaddset(&set, SIGINT); sigprocmask(SIG_BLOCK, &set, NULL); while(subsystem_count > 0) { @@ -113,6 +114,8 @@ int main(void) if(siginfo.si_status != 0) { panic("init: process %d exited with non-zero status (%d)", siginfo.si_status); } + } else if(sig == SIGINT) { + panic("init: keyboard interrupt"); } } @@ -168,8 +168,9 @@ void _panic(const char *fileorigin, } /* if we are going to die, we dont really need to clean up */ - if(mode == PANICMODE_DIE) - kill(-getpgid(pid), SIGINT); + if(mode == PANICMODE_DIE) { + kill(-getpgid(pid), SIGKILL); + } print(NOLOCK("5") "------------[ cut here ]------------"); |