nohup(1)




NAME

     nohup - run a command immune to hangups


SYNOPSIS

     /usr/bin/nohup command [argument...]

     /usr/bin/nohup -p [-Fa] pid [pid...]

     /usr/bin/nohup -g [-Fa] gpid [gpid...]

     /usr/xpg4/bin/nohup command [argument...]


DESCRIPTION

     The nohup utility invokes the named command with  the  argu-
     ments supplied.  When the command is invoked, nohup arranges
     for the SIGHUP signal to be ignored by the process.

     When invoked with the -p or -g  flags,  nohup  arranges  for
     processes already running as identified by a list of process
     IDs or a list of process group IDs to become immune to hang-
     ups.

     The nohup utility can be used when it is known that  command
     will  take  a long time to run and the user wants to log out
     of the terminal. When a shell exits, the  system  sends  its
     children  SIGHUP  signals, which by default cause them to be
     killed. All  stopped,  running,  and  background  jobs  will
     ignore  SIGHUP  and continue running, if their invocation is
     preceded by the nohup command or if the process programmati-
     cally has chosen to ignore SIGHUP.

     /usr/bin/nohup
           Processes run by /usr/bin/nohup are immune  to  SIGHUP
           (hangup) and SIGQUIT (quit) signals.

     /usr/bin/nohup -p [-Fa]
           Processes specified by ID are made  immune  to  SIGHUP
           and  SIGQUIT, and all output to the controlling termi-
           nal is redirected to nohup.out. If  -F  is  specified,
           nohup  will  force  control  of each process. If -a is
           specified, nohup will change the signal disposition of
           SIGHUP and SIGQUIT even if the process has installed a
           handler for either signal.

     /usr/bin/nohup -g [-Fa]
           Every  process  in  the  same  process  group  as  the
           processes  specified  by  ID are made immune to SIGHUP
           and SIGQUIT, and all output to the controlling  termi-
           nal  is  redirected  to nohup.out. If -F is specified,
           nohup will force control of each  process.  If  -a  is
           specified, nohup will change the signal disposition of
           SIGHUP and SIGQUIT even if the process has installed a
           handler for either signal.

     /usr/xpg4/bin/nohup
           Processes run by  /usr/xpg4/bin/nohup  are  immune  to
           SIGHUP.

           The nohup utility does not arrange to  make  processes
           immune to a SIGTERM (terminate) signal, so unless they
           arrange to be immune to SIGTERM  or  the  shell  makes
           them immune to SIGTERM, they will receive it.

           If nohup.out is not writable in the current directory,
           output  is redirected to $HOME/nohup.out. If a file is
           created, the file will have read and write  permission
           (600, see chmod(1)). If the standard error is a termi-
           nal, it is redirected to the standard  output,  other-
           wise it is not redirected. The priority of the process
           run by nohup is not altered.


OPTIONS

     The following options are supported:

     -a    Always  changes  the  signal  disposition  of   target
           processes.  This  option  is valid only when specified
           with -p or -g.

     -F    Force. Grabs the target processes even if another pro-
           cess  has  control.  This  option  is  valid only when
           specified with -p or -g.

     -g    Operates on a list of process groups. This  option  is
           not valid with -p.

     -p    Operates on a list of processes. This  option  is  not
           valid with -g.


OPERANDS

     The following operands are supported:

     pid   A decimal process ID to be manipulated by nohup -p.

     pgid  A decimal process group ID to be manipulated by  nohup
           -g.

     command
           The name of a command that is to be  invoked.  If  the
           command    operand    names   any   of   the   special
           shell_builtins(1) utilities,  the  results  are  unde-
           fined.

     argument
           Any string to be supplied as an argument when invoking
           the command operand.


EXAMPLES

     Example 1: Applying nohup to pipelines or command lists

     It is frequently desirable to apply nohup  to  pipelines  or
     lists  of  commands.  This can be done only by placing pipe-
     lines and command lists in a single  file,  called  a  shell
     script. One can then issue:

     example$ nohup sh file

     and the nohup applies to everything in file.  If  the  shell
     script  file  is to be executed often, then the need to type
     sh can be eliminated by giving file execute permission.

     Add an ampersand and the contents of file  are  run  in  the
     background with interrupts also ignored (see sh(1)):

     example$ nohup file &

     Example 2: Applying nohup -p to a process

     example$ long_running_command &
     example$ nohup -p `pgrep long_running_command`

     Example 3: Applying nohup -g to a process group

     example$ make &
     example$ ps -o sid -p $$
        SID
     81079
     example$ nohup -g `pgrep -s 81079 make`


ENVIRONMENT VARIABLES

     See environ(5) for descriptions of the following environment
     variables  that affect the execution of nohup: LANG, LC_ALL,
     LC_CTYPE, LC_MESSAGES, PATH, NLSPATH, and PATH.

     HOME  Determine the path name of the user's home  directory:
           if  the output file nohup.out cannot be created in the
           current directory, the  nohup  command  will  use  the
           directory named by HOME to create the file.


EXIT STATUS

     The following exit values are returned:

     126   command was found but could not be invoked.

     127   An error occurred in nohup, or command  could  not  be
           found

     Otherwise, the exit values of nohup will  be  those  of  the
     command operand.


FILES

     nohup.out
           The output file of the  nohup  execution  if  standard
           output  is  a terminal and if the current directory is
           writable.

     $HOME/nohup.out
           The output file of the  nohup  execution  if  standard
           output  is  a terminal and if the current directory is
           not writable.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

  /usr/bin/nohup
     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|
    | CSI                         | enabled                     |
    |_____________________________|_____________________________|

  /usr/xpg4/bin/nohup
     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWxcu4                    |
    |_____________________________|_____________________________|
    | CSI                         | enabled                     |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO

     batch(1),  chmod(1),  csh(1),  ksh(1),  nice(1),   pgrep(1),
     proc(1),   ps(1),   sh(1),   shell_builtins(1),  signal(3C),
     proc(4), attributes(5), environ(5), standards(5)


WARNINGS

     If you are running the Korn shell  (ksh(1))  as  your  login
     shell,  and  have  nohup'ed jobs running when you attempt to
     log out, you will be warned with the message:

     You have jobs running.

     You will then need to log out a second time to actually  log
     out. However, your background jobs will continue to run.


NOTES

     The C-shell (csh(1)) has a built-in command nohup that  pro-
     vides  immunity from SIGHUP, but does not redirect output to
     nohup.out. Commands  executed  with  `&'  are  automatically
     immune to HUP signals while in the background.

     nohup does not recognize command sequences. In the  case  of
     the following command,

     example$ nohup command1; command2

     the nohup utility applies only to command1. The command,

     example$ nohup (command1; command2)

     is syntactically incorrect.


Man(1) output converted with man2html