/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.weechat-hashes
parent
4c0cdae4e5
commit
9c7ceb23bb
|
@ -472,6 +472,7 @@ static void commandExec(uint id, char *params) {
|
||||||
if (pid < 0) err(EX_OSERR, "fork");
|
if (pid < 0) err(EX_OSERR, "fork");
|
||||||
if (pid) return;
|
if (pid) return;
|
||||||
|
|
||||||
|
setsid();
|
||||||
close(STDIN_FILENO);
|
close(STDIN_FILENO);
|
||||||
dup2(execPipe[1], STDOUT_FILENO);
|
dup2(execPipe[1], STDOUT_FILENO);
|
||||||
dup2(utilPipe[1], STDERR_FILENO);
|
dup2(utilPipe[1], STDERR_FILENO);
|
||||||
|
|
1
ui.c
1
ui.c
|
@ -567,6 +567,7 @@ static void notify(uint id, const char *str) {
|
||||||
if (pid < 0) err(EX_OSERR, "fork");
|
if (pid < 0) err(EX_OSERR, "fork");
|
||||||
if (pid) return;
|
if (pid) return;
|
||||||
|
|
||||||
|
setsid();
|
||||||
close(STDIN_FILENO);
|
close(STDIN_FILENO);
|
||||||
dup2(utilPipe[1], STDOUT_FILENO);
|
dup2(utilPipe[1], STDOUT_FILENO);
|
||||||
dup2(utilPipe[1], STDERR_FILENO);
|
dup2(utilPipe[1], STDERR_FILENO);
|
||||||
|
|
2
url.c
2
url.c
|
@ -123,6 +123,7 @@ static void urlOpen(const char *url) {
|
||||||
if (pid < 0) err(EX_OSERR, "fork");
|
if (pid < 0) err(EX_OSERR, "fork");
|
||||||
if (pid) return;
|
if (pid) return;
|
||||||
|
|
||||||
|
setsid();
|
||||||
close(STDIN_FILENO);
|
close(STDIN_FILENO);
|
||||||
dup2(utilPipe[1], STDOUT_FILENO);
|
dup2(utilPipe[1], STDOUT_FILENO);
|
||||||
dup2(utilPipe[1], STDERR_FILENO);
|
dup2(utilPipe[1], STDERR_FILENO);
|
||||||
|
@ -174,6 +175,7 @@ static void urlCopy(const char *url) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setsid();
|
||||||
dup2(rw[0], STDIN_FILENO);
|
dup2(rw[0], STDIN_FILENO);
|
||||||
dup2(utilPipe[1], STDOUT_FILENO);
|
dup2(utilPipe[1], STDOUT_FILENO);
|
||||||
dup2(utilPipe[1], STDERR_FILENO);
|
dup2(utilPipe[1], STDERR_FILENO);
|
||||||
|
|
Loading…
Reference in New Issue