diff options
author | Klemens Nanni <klemens@posteo.de> | 2021-06-13 02:28:15 +0000 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-06-13 16:46:34 -0400 |
commit | 9c7ceb23bb9ffaa40af2c7bb50130bb66c607593 (patch) | |
tree | c7662e2c0bd05bdbcd79d9f6cd1b02143a008222 | |
parent | Exit on data directory creation error (diff) | |
download | catgirl-9c7ceb23bb9ffaa40af2c7bb50130bb66c607593.tar.gz catgirl-9c7ceb23bb9ffaa40af2c7bb50130bb66c607593.zip |
/exec without controlling terminal
Otherwise "/exec sh </dev/tty" takes over and catgirl must effectively be killed to stop the madness; with this diff: catgirl input| /exec sh </dev/tty catgirl output| /bin/sh: cannot open /dev/tty: Device not configured catgirl output| Process exits with status 1 Do the same for `-C/Copy', `-N/notify' and `-O/open' alike.
Diffstat (limited to '')
-rw-r--r-- | command.c | 1 | ||||
-rw-r--r-- | ui.c | 1 | ||||
-rw-r--r-- | url.c | 2 |
3 files changed, 4 insertions, 0 deletions
diff --git a/command.c b/command.c index 4c290fc..b345e11 100644 --- a/command.c +++ b/command.c @@ -472,6 +472,7 @@ static void commandExec(uint id, char *params) { if (pid < 0) err(EX_OSERR, "fork"); if (pid) return; + setsid(); close(STDIN_FILENO); dup2(execPipe[1], STDOUT_FILENO); dup2(utilPipe[1], STDERR_FILENO); diff --git a/ui.c b/ui.c index 1b21cc5..8f8de1e 100644 --- a/ui.c +++ b/ui.c @@ -567,6 +567,7 @@ static void notify(uint id, const char *str) { if (pid < 0) err(EX_OSERR, "fork"); if (pid) return; + setsid(); close(STDIN_FILENO); dup2(utilPipe[1], STDOUT_FILENO); dup2(utilPipe[1], STDERR_FILENO); diff --git a/url.c b/url.c index 9de2f9a..219a83c 100644 --- a/url.c +++ b/url.c @@ -123,6 +123,7 @@ static void urlOpen(const char *url) { if (pid < 0) err(EX_OSERR, "fork"); if (pid) return; + setsid(); close(STDIN_FILENO); dup2(utilPipe[1], STDOUT_FILENO); dup2(utilPipe[1], STDERR_FILENO); @@ -174,6 +175,7 @@ static void urlCopy(const char *url) { return; } + setsid(); dup2(rw[0], STDIN_FILENO); dup2(utilPipe[1], STDOUT_FILENO); dup2(utilPipe[1], STDERR_FILENO); |