+/* vi: set sw=4 ts=4: */
/*
* setsid.c -- execute a command in a new session
* Rick Sladkey <jrs@world.std.com>
* - busyboxed
*/
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
#include "busybox.h"
-int
-setsid_main(int argc, char *argv[]) {
-
- if (argc < 2) {
+int setsid_main(int argc, char *argv[])
+{
+ if (argc < 2)
bb_show_usage();
- }
if (getpgrp() == getpid()) {
- switch(fork()){
+ switch (fork()) {
case -1:
bb_perror_msg_and_die("fork");
case 0:
default: /* parent */
exit(0);
}
- /* child falls through */
}
+ /* child */
setsid(); /* no error possible */
execvp(argv[1], argv + 1);
- bb_perror_msg_and_die(argv[1]);
-
+ bb_perror_msg_and_die("%s", argv[1]);
}