Provided by: manpages-posix_2017a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of
       this interface may differ (consult the corresponding Linux  manual  page  for  details  of
       Linux behavior), or the interface may not be implemented on Linux.

NAME

       nohup — invoke a utility immune to hangups

SYNOPSIS

       nohup utility [argument...]

DESCRIPTION

       The  nohup  utility  shall  invoke the utility named by the utility operand with arguments
       supplied as the argument operands. At the time the named utility is  invoked,  the  SIGHUP
       signal shall be set to be ignored.

       If  standard  input is associated with a terminal, the nohup utility may redirect standard
       input from an unspecified file.

       If the standard output is a terminal, all output written  by  the  named  utility  to  its
       standard  output  shall  be  appended  to  the  end  of  the file nohup.out in the current
       directory. If nohup.out cannot be created or opened for appending,  the  output  shall  be
       appended  to  the  end  of  the  file  nohup.out  in  the  directory specified by the HOME
       environment variable. If neither file can be created  or  opened  for  appending,  utility
       shall  not  be  invoked.  If a file is created, the file's permission bits shall be set to
       S_IRUSR | S_IWUSR.

       If standard error is a terminal and standard output is open but is  not  a  terminal,  all
       output  written by the named utility to its standard error shall be redirected to the same
       open file description as the standard output. If standard error is a terminal and standard
       output either is a terminal or is closed, the same output shall instead be appended to the
       end of the nohup.out file as described above.

OPTIONS

       None.

OPERANDS

       The following operands shall be supported:

       utility   The name of a utility that is to be invoked. If the utility operand names any of
                 the  special built-in utilities in Section 2.14, Special Built-In Utilities, the
                 results are undefined.

       argument  Any string to be supplied as an argument when invoking the utility named by  the
                 utility operand.

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of nohup:

       HOME      Determine  the  pathname  of  the  user's  home  directory:  if  the output file
                 nohup.out cannot be created in the current directory, the  nohup  utility  shall
                 use the directory named by HOME to create the file.

       LANG      Provide a default value for the internationalization variables that are unset or
                 null.  (See  the  Base  Definitions  volume  of   POSIX.1‐2017,   Section   8.2,
                 Internationalization   Variables  for  the  precedence  of  internationalization
                 variables used to determine the values of locale categories.)

       LC_ALL    If set to a non-empty string  value,  override  the  values  of  all  the  other
                 internationalization variables.

       LC_CTYPE  Determine  the  locale for the interpretation of sequences of bytes of text data
                 as characters (for example, single-byte as opposed to multi-byte  characters  in
                 arguments).

       LC_MESSAGES
                 Determine  the  locale  that should be used to affect the format and contents of
                 diagnostic messages written to standard error.

       NLSPATH   Determine the location of message catalogs for the processing of LC_MESSAGES.

       PATH      Determine the search path that is used to locate the utility to be invoked.  See
                 the Base Definitions volume of POSIX.1‐2017, Chapter 8, Environment Variables.

ASYNCHRONOUS EVENTS

       The  nohup utility shall take the standard action for all signals except that SIGHUP shall
       be ignored.

STDOUT

       If the standard output is not a terminal, the  standard  output  of  nohup  shall  be  the
       standard  output  generated  by  the  execution  of the utility specified by the operands.
       Otherwise, nothing shall be written to the standard output.

STDERR

       If the standard output is a terminal, a message shall be written to  the  standard  error,
       indicating  the  name  of  the file to which the output is being appended. The name of the
       file shall be either nohup.out or $HOME/nohup.out.

OUTPUT FILES

       Output  written  by  the  named  utility  is  appended   to   the   file   nohup.out   (or
       $HOME/nohup.out), if the conditions hold as described in the DESCRIPTION.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

       126     The utility specified by utility was found but could not be invoked.

       127     An  error  occurred in the nohup utility or the utility specified by utility could
               not be found.

       Otherwise, the exit status of nohup shall be that of the utility specified by the  utility
       operand.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       The  command,  env, nice, nohup, time, and xargs utilities have been specified to use exit
       code 127 if an error occurs so that applications  can  distinguish  ``failure  to  find  a
       utility''  from  ``invoked  utility  exited  with an error indication''. The value 127 was
       chosen because it is not commonly used for other meanings; most utilities use small values
       for  ``normal error conditions'' and the values above 128 can be confused with termination
       due to receipt of a signal. The value 126 was chosen in a similar manner to indicate  that
       the  utility  could  be  found,  but  not  invoked.  Some scripts produce meaningful error
       messages differentiating the 126 and 127 cases. The distinction between exit codes 126 and
       127  is  based  on  KornShell practice that uses 127 when all attempts to exec the utility
       fail with [ENOENT], and uses 126 when any attempt to exec the utility fails for any  other
       reason.

EXAMPLES

       It  is  frequently desirable to apply nohup to pipelines or lists of commands. This can be
       done by placing pipelines and command lists in a  single  file;  this  file  can  then  be
       invoked as a utility, and the nohup applies to everything in the file.

       Alternatively, the following command can be used to apply nohup to a complex command:

           nohup sh -c 'complex-command-line' </dev/null

RATIONALE

       The  4.3  BSD  version  ignores  SIGTERM and SIGHUP, and if ./nohup.out cannot be used, it
       fails instead of trying to use $HOME/nohup.out.

       The csh utility has a built-in version of nohup  that  acts  differently  from  the  nohup
       defined in this volume of POSIX.1‐2017.

       The  term  utility is used, rather than command, to highlight the fact that shell compound
       commands, pipelines, special built-ins, and so on,  cannot  be  used  directly.   However,
       utility  includes  user  application  programs  and  shell  scripts, not just the standard
       utilities.

       Historical versions of the nohup utility use default file creation  semantics.  Some  more
       recent versions use the permissions specified here as an added security precaution.

       Some  historical  implementations  ignore  SIGQUIT  in  addition  to SIGHUP; others ignore
       SIGTERM. An early proposal allowed, but did not require, SIGQUIT to  be  ignored.  Several
       reviewers  objected  that  nohup  should only modify the handling of SIGHUP as required by
       this volume of POSIX.1‐2017.

       Historical versions of nohup did not affect standard input, but that  causes  problems  in
       the common scenario where the user logs into a system, types the command:

           nohup make &

       at  the  prompt,  and then logs out. If standard input is not affected by nohup, the login
       session may not terminate for quite some time, since standard  input  remains  open  until
       make  exits.  To  avoid  this  problem,  POSIX.1‐2008  allows  implementations to redirect
       standard input if it is a terminal. Since the behavior is implementation-defined, portable
       applications  that may run into the problem should redirect standard input themselves. For
       example, instead of:

           nohup make &

       an application can invoke:

           nohup make </dev/null &

FUTURE DIRECTIONS

       None.

SEE ALSO

       Chapter 2, Shell Command Language, sh

       The Base Definitions volume of POSIX.1‐2017, Chapter 8, Environment Variables

       The System Interfaces volume of POSIX.1‐2017, signal()

COPYRIGHT

       Portions of this text are reprinted and  reproduced  in  electronic  form  from  IEEE  Std
       1003.1-2017,  Standard  for  Information Technology -- Portable Operating System Interface
       (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C)  2018  by
       the  Institute  of  Electrical  and Electronics Engineers, Inc and The Open Group.  In the
       event of any discrepancy between this version and the original IEEE  and  The  Open  Group
       Standard,  the  original  IEEE  and  The  Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

       Any typographical or formatting errors that appear in this page are most  likely  to  have
       been  introduced  during  the conversion of the source files to man page format. To report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .