From b435ebcd5289d3015fbbaf75bef5bc9c5b1d9739 Mon Sep 17 00:00:00 2001 From: "julien.seemulle" <julien.seemuller@etu.hesge.ch> Date: Wed, 12 May 2021 01:15:59 +0200 Subject: [PATCH] Sending SIGINT to foreground jobs working. --- bin/command.c | 7 +++++-- bin/command.h | 4 ++-- bin/command.o | Bin 14792 -> 14904 bytes bin/main.c | 37 ++++++++++++++++++++++++++++++++----- bin/main.o | Bin 12120 -> 13576 bytes wshell | Bin 28544 -> 29080 bytes 6 files changed, 39 insertions(+), 9 deletions(-) diff --git a/bin/command.c b/bin/command.c index 3a2e21f..2f39fcc 100644 --- a/bin/command.c +++ b/bin/command.c @@ -80,7 +80,7 @@ void exec_builtin(char **argv, int argc) return; } -void exec_job(cmd_t *cmd, bool foreground) +void exec_job(cmd_t *cmd, bool foreground, int* pid_job) { int child_status; @@ -111,6 +111,7 @@ void exec_job(cmd_t *cmd, bool foreground) // Create child with fork pid_t pid = fork(); + *pid_job = pid; if (pid == 0) { @@ -230,7 +231,7 @@ void exec_job(cmd_t *cmd, bool foreground) // Function where the piped system commands is executed // We use the pipe function to get two file descriptors, then we redirect the output fd to the input fd -void exec_job_piped(cmd_t *cmd, bool foreground) +void exec_job_piped(cmd_t *cmd, bool foreground, int* pid_job) { // pipe() syscall needs an array of 2 fd // 0 is the read file descriptor (used by process 2) @@ -251,6 +252,8 @@ void exec_job_piped(cmd_t *cmd, bool foreground) // Fork to prepare running our first command pid = fork(); + *pid_job = pid; + if (pid < 0) { printf("Error while forking on the first processs\n"); diff --git a/bin/command.h b/bin/command.h index 05a3c3b..2bed089 100644 --- a/bin/command.h +++ b/bin/command.h @@ -22,11 +22,11 @@ void exec_builtin(char** argv, int argc); //IN: // cmd: struct countaining the command to be executed // foreground: if the task has to be run in foreground or background ('&' sign) -void exec_job(cmd_t *cmd, bool foreground); +void exec_job(cmd_t *cmd, bool foreground, pid_t* pid_job); // Execute a parsed pipe command as job (forks process) //IN: // cmd: struct countaining the commands to be executed and piped together // [UNUSED !!!] foreground: if the task has to be run in foreground or background ('&' sign) -void exec_job_piped(cmd_t *cmd, bool foreground); +void exec_job_piped(cmd_t *cmd, bool foreground, pid_t* pid_job); #endif \ No newline at end of file diff --git a/bin/command.o b/bin/command.o index 1751a4c63304c86ed0be32c7477bd4c7013b7ee9..a763b9c62676e45dea396c215356f48a026e4852 100644 GIT binary patch delta 3321 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 delta 3084 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 diff --git a/bin/main.c b/bin/main.c index 97baeaa..293f5a9 100644 --- a/bin/main.c +++ b/bin/main.c @@ -2,6 +2,7 @@ #include <stdlib.h> #include <errno.h> #include <signal.h> +#include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/signal.h> @@ -12,6 +13,9 @@ #define MAX_CMD_LEN 255 +// Stores the PID of the current foreground job +int MAIN_JOB_PID = 0; + void sigchld_handler(int signal) { int status; @@ -28,13 +32,33 @@ void sigchld_handler(int signal) } } +void sighup(int signum) +{ + exit(EXIT_SUCCESS); +} + +void sigint_job(int signum) +{ + if (MAIN_JOB_PID) + { + kill(MAIN_JOB_PID, signum); + printf("\nForeground job interrupted.\n"); + } +} + int main(int argc, char *const argv[]) { printf(BOLDCYAN "Welcome to WaffleShell (#sh), use at your own risk !\n" RESET); - // Ignore "CTRL + C" (Interrupt signal) - //signal(SIGINT, SIG_IGN); - //signal(SIGQUIT, SIG_IGN); + // Redirect SIGHUP to all (main + subprocesses) + signal(SIGHUP, sighup); + + // Redirect SIGINT to the foreground job, else it's ignored + signal(SIGINT, sigint_job); + + // Ignore SIGTERM and SIGQUIT (default bash behaviour) + signal(SIGTERM, SIG_IGN); + signal(SIGQUIT, SIG_IGN); // Prepare a handler to handle sigchild struct sigaction sig_action; @@ -51,6 +75,9 @@ int main(int argc, char *const argv[]) while (true) { + // Reset main job PID + MAIN_JOB_PID = 0; + char *cmd_str = malloc((size_t)sizeof(char) * MAX_CMD_LEN); cmd_t *cmd_in = malloc((size_t)sizeof(cmd_t)); @@ -83,12 +110,12 @@ int main(int argc, char *const argv[]) if (cmd_in->type == CMD_PIPE) { // Piped job - exec_job_piped(cmd_in, cmd_in->foreground); + exec_job_piped(cmd_in, cmd_in->foreground, &MAIN_JOB_PID); } else { // Regular job (with or without input/output redirection) - exec_job(cmd_in, cmd_in->foreground); + exec_job(cmd_in, cmd_in->foreground, &MAIN_JOB_PID); } } diff --git a/bin/main.o b/bin/main.o index 312f10a69228e8b2dc97183a4a6b9b5fc6fe3e30..8df1e450f301e084e53be7dab3bd5ddfe111a195 100644 GIT binary patch literal 13576 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 literal 12120 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 diff --git a/wshell b/wshell index 4e2e1cc542418ab40cde9d06bee4b0ea6e5a5c36..0a312f72640baae2e87db5369b9672783b95029c 100644 GIT binary patch delta 13084 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 MAu8=AFU*h!0A~^eL;wH) delta 12093 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 b1?HR!5+FRe$(DuYT>GGD*p6{>Ri+#OWxEn7 -- GitLab