OSDN Git Service

Promote mix
[android-x86/external-toybox.git] / toys / other / setsid.c
1 /* setsid.c - Run program in a new session ID.
2  *
3  * Copyright 2006 Rob Landley <rob@landley.net>
4
5 USE_SETSID(NEWTOY(setsid, "^<1t", TOYFLAG_USR|TOYFLAG_BIN))
6
7 config SETSID
8   bool "setsid"
9   default y
10   help
11     usage: setsid [-t] command [args...]
12
13     Run process in a new session.
14
15     -t  Grab tty (become foreground process, receiving keyboard signals)
16 */
17
18 #include "toys.h"
19
20 void setsid_main(void)
21 {
22   while (setsid()<0) if (vfork()) _exit(0);
23   if (toys.optflags) {
24     setpgid(0,0);
25     tcsetpgrp(0, getpid());
26   }
27   xexec_optargs(0);
28 }