daemonize man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

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
	 unmounted

       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)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net