Contents of /trunk/mkinitrd-magellan/busybox/miscutils/setsid.c
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File MIME type: text/plain
File size: 757 byte(s)
Sat Sep 1 22:45:15 2007 UTC (17 years ago) by niro
File MIME type: text/plain
File size: 757 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * setsid.c -- execute a command in a new session |
4 | * Rick Sladkey <jrs@world.std.com> |
5 | * In the public domain. |
6 | * |
7 | * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL> |
8 | * - added Native Language Support |
9 | * |
10 | * 2001-01-18 John Fremlin <vii@penguinpowered.com> |
11 | * - fork in case we are process group leader |
12 | * |
13 | * 2004-11-12 Paul Fox |
14 | * - busyboxed |
15 | */ |
16 | |
17 | #include "busybox.h" |
18 | |
19 | int setsid_main(int argc, char *argv[]) |
20 | { |
21 | if (argc < 2) |
22 | bb_show_usage(); |
23 | |
24 | if (getpgrp() == getpid()) { |
25 | switch (fork()) { |
26 | case -1: |
27 | bb_perror_msg_and_die("fork"); |
28 | case 0: |
29 | break; |
30 | default: /* parent */ |
31 | exit(0); |
32 | } |
33 | } |
34 | /* child */ |
35 | |
36 | setsid(); /* no error possible */ |
37 | |
38 | execvp(argv[1], argv + 1); |
39 | |
40 | bb_perror_msg_and_die("%s", argv[1]); |
41 | } |