daemonize(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

daemonize(1)

daemonize(1)                     User Manuals                     daemonize(1)

NAME
       daemonize - run a program as a Unix daemon

SYNOPSIS
       daemonize  [-a] [-c directory] [-e stderr] [-o stdout] [-p pidfile] [-l
       lockfile] [-u user] [-v] path [arg] ...

DESCRIPTION
       daemonize runs a command as a Unix daemon.  As defined  in  W.  Richard
       Stevens'  1990 book, Unix Network Programming (Addison-Wesley, 1990), a
       daemon is “a process that executes `in the background'  (i.e.,  without
       an associated terminal or login shell) either waiting for some event to
       occur,  or waiting to perform some specified task on a periodic basis.”
       Upon startup, a typical daemon program will:

       o Close all open file descriptors (especially standard input,  standard
         output and standard error)

       o Change  its  working directory to the root filesystem, to ensure that
         it doesn't tie up another filesystem and prevent it  from  being  un‐
         mounted

       o Reset its umask value

       o Run in the background (i.e., fork)

       o Disassociate  from  its  process group (usually a shell), to insulate
         itself from signals (such as HUP) sent to the process group

       o Ignore all terminal I/O signals

       o Disassociate from the control terminal (and take steps not  to  reac‐
         quire one)

       o Handle any SIGCLD signals

       Most  programs  that are designed to be run as daemons do that work for
       themselves. However, you'll occasionally run across one that does  not.
       When  you  must run a daemon program that does not properly make itself
       into a true Unix daemon, you can use daemonize to force it to run as  a
       true daemon.

OPTIONS
       -a     Append  to the output files, rather than overwriting them (which
              is the default). Only applicable if -e and/or -o are specified.

       -c directory
              Specifies the directory to which to change  before  running  the
              program.   Defaults to "/". The choice for this option is impor‐
              tant. The file system containing the daemon's working  directory
              cannot be unmounted while the daemon is running. That's why most
              daemons  are careful to use a working directory on the root file
              system.

       -e stderr
              Redirect standard  error  to  the  specified  file,  instead  of
              "/dev/null".

              Warning: Be careful where you redirect the output! The file sys‐
              tem  containing the open file cannot be unmounted as long as the
              file is open. For best results, make sure that this output  file
              is  on  the  same file system as the daemon's working directory.
              (See the -c option.)

       -E name=value
              Add an environment variable to the environment the  daemon  will
              see. The parameter must be of the form name=value.  This parame‐
              ter may be specified multiple times.

       -o stdout
              Redirect  standard  output  to  the  specified  file, instead of
              "/dev/null".

              Warning: Be careful where you redirect the output! The file sys‐
              tem containing the open file cannot be unmounted as long as  the
              file  is open. For best results, make sure that this output file
              is on the same file system as the  daemon's  working  directory.
              (See the -c option.)

       -p pidfile
              Causes  daemonize  to  write the numeric process ID (PID) of the
              running daemon to the specified file. This option is useful when
              the program being daemonized doesn't create its own PID file.

       -l lockfile
              Single-instance checking. Causes daemonize  to  ensure  that  no
              more  than  one  instance of the daemon is running by placing an
              exclusive lock on given lockfile. If another process already has
              a lock on the lockfile, daemonize exits.

       It is possible  to  use  the  pidfile  as  the  lock  file  (e.g.,  "-p
       /var/run/foo  -l  /var/run/foo"),  though  typical daemons use separate
       files.

       NOTE: If the executed program decides to close  all  file  descriptors,
       the single-instance locking will not work, since the lock depends on an
       open  file  descriptor.  (The  operating system kernel removes the lock
       once the process holding the lock closes the file  or  exits.)   Normal
       processes  that  do  not  daemonize themselves do not usually close all
       file descriptors.

       -u user
              Run the program as the specified user. This option only works if
              daemonize is invoked by the superuser.  Note: For  obvious  rea‐
              sons,  it's  very dangerous to install daemonize as a setuid-to-
              root executable. For that reason, daemonize will refuse  to  run
              if it detects that it has been installed that way.

       -v     Cause  daemonize  to  write  verbose messages to standard error,
              telling what it's doing as it daemonizes the program.

NOTES
       If the host operating system provides the  daemon(3)  library  routine,
       daemonize  will  use  it.  Otherwise, daemonize uses its own version of
       daemon(3).  This choice is made at compile time. (BSD 4.4-derived oper‐
       ating systems tend to provide their own daemon(3) routine.)

       FreeBSD 5.0 introduced a daemon(1) command that is similar to, but less
       functional, than daemonize.

LICENSE
       This program released under a BSD-style license. For more details, con‐
       sult the LICENSE file accompanying the source  distribution,  or  visit
       "http://software.clapper.org/daemonize/LICENSE".

SEE ALSO
       daemon(3), setsid(2), flock(2)

       daemonize Home Page: http://software.clapper.org/daemonize/

AUTHOR
       Brian M. Clapper, bmc <at> clapper <dot> org

CONTRIBUTORS
       Support  for the -e and -o options is based on a patch submitted by Tim
       Starling (tstarling <at> wikimedia <dot> org).

       Support for the -l option is based on a patch submitted by Yakov Lerner
       (iler.ml <at> gmail <dot> com).

Unix                              August 2006                     daemonize(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3