* Copyright 2006 Rob Landley <rob@landley.net>
* 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(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//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
xfunc_error_retval = 127;
- if (!argv[1]) bb_show_usage();
+ if (!argv[1]) {
+ bb_show_usage();
+ }
/* If stdin is a tty, detach from it. */
if (isatty(STDIN_FILENO)) {
signal(SIGHUP, SIG_IGN);
- BB_EXECVP(argv[1], argv+1);
- bb_simple_perror_msg_and_die(argv[1]);
+ argv++;
+ BB_EXECVP_or_die(argv);
}