nohup - Runs a utility ignoring hangups and quits
nohup utility [argument...]
The C shell has a built-in version of the nohup command. If you are
using the C shell, and want to guarantee that you are using the com-
mand described here, you must specify the full path /usr/bin/nohup.
See the csh(1) reference page for a description of the built-in com-
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
The name of a command to be invoked.
Optional arguments required by the utility specified for invokation.
The nohup command runs utility, ignoring all hangups and QUIT signals. You
can use this command to run programs in the background after logging off
the system. To run a nohup command in the background, add an & (ampersand)
to the end of the command.
If nohup output is redirected to a terminal or is not redirected at all,
the output is appended to the file nohup.out. If the file is created, the
permission bits are set to Owner Read and Owner Write (600). If nohup.out
is not writable in the current directory, the output is redirected to
$HOME/nohup.out. If neither file can be created nor opened for appending,
utility is not invoked.
If standard error is a terminal, all output written to standard error is
appended to the file receiving standard output.
The nohup command accepts just one utility as an argument. To apply nohup
to a pipeline or list of commands, enter the pipeline or list in a shell
script file. Then run sh as utility using the following format:
nohup sh -c file
[Tru64 UNIX] You can also assign the shell file execute permission and run
it as the utility in the form:
The term utility, rather than the term command, describes the argument to
nohup because shell compound commands, pipelines, special built-in pro-
grams, and the like, cannot be handled directly. In addition, the term
utility includes user application programs and shell scripts, not just the
The nohup command returns the following exit values:
126 The specified utility was found, but could not be invoked.
127 The error occurred in the nohup utility or the specified utility could
not be found.
The exit status is otherwise that of the utility.
1. To leave a command running after logging out (sh only), enter:
nohup find / -print &&
Shortly after you enter this, the following is displayed:
$ Sending output to nohup.out
The process ID number changes to the background process started by the
& (ampersand), in this case, 670. The $ (dollar sign) is the shell
prompt. The message following informs you that the output from the
find command is in the file nohup.out.
You can log out after you see these messages, even if the find command
has not finished yet.
If you are using csh, the built-in command nohup is executed instead
of the system command. To execute the nohup system command, you must
enter an absolute path.
2. To do the same, but redirect the standard output to a different file,
nohup find / -print >>filenames &&
This runs the find command and stores its output in a file named
filenames. Now only the process ID and prompt are displayed.
Wait for a second or two before logging out, because the nohup command
takes a moment to start the command you specified. If you log out too
quickly, utility may not run at all. Once utility has started, log-
ging out does not affect it.
3. To run more than one command, use a shell script. For example, if you
include the following shell script:
comm -23 fi4 fi5 | comm -23 - fi6 | join -a1 - fi7 >> comm.out
and name it ncomm, you can run nohup for all of the commands in ncomm
nohup sh ncomm
If you assign ncomm Execute permission, you can obtain the same
results by issuing the command:
To run this command in the background, enter:
nohup ncomm &&
The following environment variables affect the execution of nohup:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined.
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
Determines 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).
Determines the locale for the format and contents of diagnostic mes-
sages written to standard error.
Determines the location of message catalogues for the processing of
Determines the search path that will be used to locate the command to
Standard output and standard error file for nohup.
Commands: csh(1), ksh(1), nice(1), Bourne shell sh(1b), POSIX shell sh(1p)