/* setsid.c - Run program in a new session ID. * * Copyright 2006 Rob Landley 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); }