/* setsid.c - Run program in a new session ID. | |
* | |
* Copyright 2006 Rob Landley <rob@landley.net> | |
USE_SETSID(NEWTOY(setsid, "^<1t", TOYFLAG_USR|TOYFLAG_BIN)) | |
config SETSID | |
bool "setsid" | |
default y | |
help | |
usage: setsid [-t] command [args...] | |
Run process in a new session. | |
-t Grab tty (become foreground process, receiving keyboard signals) | |
*/ | |
#include "toys.h" | |
void setsid_main(void) | |
{ | |
while (setsid()<0) if (XVFORK()) _exit(0); | |
if (toys.optflags) { | |
setpgid(0, 0); | |
tcsetpgrp(0, getpid()); | |
} | |
xexec(toys.optargs); | |
} |