ntpd: default to FEATURE_NTP_AUTH=y
[oweals/busybox.git] / coreutils / nohup.c
index 7d6a51ae9d180add12fd961d6a85fb136f4112d2..ae136e085743e8c36f3f1b606715ce7381343b56 100644 (file)
@@ -1,25 +1,43 @@
 /* vi: set sw=4 ts=4: */
-/* nohup - invoke a utility immune to hangups.
+/*
+ * nohup - invoke a utility immune to hangups.
  *
  * Busybox version based on nohup specification at
  * http://www.opengroup.org/onlinepubs/007904975/utilities/nohup.html
  *
  * Copyright 2006 Rob Landley <rob@landley.net>
- * Copyright 2006 Bernhard Fischer
+ * Copyright 2006 Bernhard Reutner-Fischer
  *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
+//config:config NOHUP
+//config:      bool "nohup (2 kb)"
+//config:      default y
+//config:      help
+//config:      run a command immune to hangups, with output to a non-tty.
+
+//applet:IF_NOHUP(APPLET_NOEXEC(nohup, nohup, BB_DIR_USR_BIN, BB_SUID_DROP, nohup))
+
+//kbuild:lib-$(CONFIG_NOHUP) += nohup.o
+
+//usage:#define nohup_trivial_usage
+//usage:       "PROG ARGS"
+//usage:#define nohup_full_usage "\n\n"
+//usage:       "Run PROG immune to hangups, with output to a non-tty"
+//usage:
+//usage:#define nohup_example_usage
+//usage:       "$ nohup make &"
 
 #include "libbb.h"
 
 /* Compat info: nohup (GNU coreutils 6.8) does this:
 # nohup true
-nohup: ignoring input and appending output to `nohup.out'
+nohup: ignoring input and appending output to 'nohup.out'
 # nohup true 1>/dev/null
 nohup: ignoring input and redirecting stderr to stdout
 # nohup true 2>zz
 # cat zz
-nohup: ignoring input and appending output to `nohup.out'
+nohup: ignoring input and appending output to 'nohup.out'
 # nohup true 2>zz 1>/dev/null
 # cat zz
 nohup: ignoring input
@@ -32,14 +50,16 @@ nohup: redirecting stderr to stdout
 */
 
 int nohup_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int nohup_main(int argc, char **argv)
+int nohup_main(int argc UNUSED_PARAM, char **argv)
 {
        const char *nohupout;
        char *home;
 
        xfunc_error_retval = 127;
 
-       if (argc < 2) bb_show_usage();
+       if (!argv[1]) {
+               bb_show_usage();
+       }
 
        /* If stdin is a tty, detach from it. */
        if (isatty(STDIN_FILENO)) {
@@ -73,6 +93,6 @@ int nohup_main(int argc, char **argv)
 
        signal(SIGHUP, SIG_IGN);
 
-       BB_EXECVP(argv[1], argv+1);
-       bb_simple_perror_msg_and_die(argv[1]);
+       argv++;
+       BB_EXECVP_or_die(argv);
 }