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 command described here, you must specify
the full path /usr/bin/nohup. See the csh(1) reference
page for a description of the built-in command.
Interfaces documented on this reference page conform to
industry standards as follows:
Refer to the standards(5) reference page for more information
about industry 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
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: nohup
The term utility, rather than the term command, describes
the argument to nohup because shell compound commands,
pipelines, special built-in programs, and the like, cannot
be handled directly. In addition, the term utility
includes user application programs and shell scripts, not
just the standard utilities.
The nohup command returns the following exit values: The
specified utility was found, but could not be invoked.
The error occurred in the nohup utility or the specified
utility could not be found.
The exit status is otherwise that of the utility.
To leave a command running after logging out (sh only),
enter: nohup find / -print &
Shortly after you enter this, the following is displayed:
670 $ 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. Sending
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. To do the same, but redirect the standard
output to a different file, enter: 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, logging out does not affect it. 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
and name it ncomm, you can run nohup for all of the
commands in ncomm by entering: 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
ENVIRONMENT VARIABLES [Toc] [Back]
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 multibyte
characters in arguments). Determines the locale for the
format and contents of diagnostic messages written to
standard error. Determines the location of message catalogues
for the processing of LC_MESSAGES. Determines the
search path that will be used to locate the command to be
Standard output and standard error file for nohup.
Commands: csh(1), ksh(1), nice(1), Bourne shell sh(1b),
POSIX shell sh(1p)
[ Back ]