Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DAEMON(8)		    System Manager's Manual		     DAEMON(8)

NAME
       daemon -- run detached from the controlling terminal

SYNOPSIS
       daemon  [-cfHrS]	 [-p child_pidfile] [-P	supervisor_pidfile] [-t	title]
	      [-u user]	[-m output_mask] [-o output_file] [-s syslog_priority]
	      [-T syslog_tag] [-l syslog_facility] [-R	restart_delay_seconds]
	      command arguments	...

DESCRIPTION
       The  daemon  utility  detaches itself from the controlling terminal and
       executes	the program specified by its  arguments.   Privileges  may  be
       lowered	to  the	 specified user.  The output of	the daemonized process
       may be redirected to syslog and to a log	file.

       The options are as follows:

       -c, --change-dir
	       Change the current working directory to the root	("/").

       -f, --close-fds
	       Redirect	standard input,	standard output	and standard error  to
	       /dev/null.   When  this option is used together with any	of the
	       options related to file or syslog output, the standard file de-
	       scriptors are first redirected to /dev/null, then stdout	and/or
	       stderr is redirected to a file or to syslog as specified	by the
	       other options.

       -H, --sighup
	       Close output_file and re-open it	 when  signal  SIGHUP  is  re-
	       ceived,	for interoperability with newsyslog(1) and similar log
	       rotation	/ archival mechanisms.	If --output-file is not	speci-
	       fied, this flag is ignored.

       -S, --syslog
	       Enable syslog output.  This is implicitly applied if other sys-
	       log parameters are provided.  The default  values  are  daemon,
	       notice,	and  daemon  for  facility, priority, and tag, respec-
	       tively.

       -o, --output-file output_file
	       Append output from the daemonized process to  output_file.   If
	       the  file  does not exist, it is	created	with permissions 0600.
	       When this option	is used	together with options --change-dir and
	       --sighup	the absolute path  needs  to  be  provided  to	ensure
	       daemon can re-open the file after a SIGHUP.

       -m, --output-mask output_mask
	       Redirect	 output	from the child process stdout (1), stderr (2),
	       or both (3).  This value	specifies what is sent to  syslog  and
	       the log file.  The default is 3.

       -p, --child-pidfile child_pidfile
	       Write  the ID of	the created process into the child_pidfile us-
	       ing the pidfile(3) functionality.  The program is executed in a
	       spawned child process while the daemon waits  until  it	termi-
	       nates to	keep the child_pidfile locked and removes it after the
	       process	exits.	 The  child_pidfile owner is the user who runs
	       the daemon regardless of	whether	the --user option is  used  or
	       not.

       -P, --supervisor-pidfile	supervisor_pidfile
	       Write  the ID of	the daemon process into	the supervisor_pidfile
	       using the pidfile(3) functionality.  The	program	is executed in
	       a spawned child process while the daemon	waits until it	termi-
	       nates  to keep the supervisor_pidfile locked and	removes	it af-
	       ter the process exits.  The  supervisor_pidfile	owner  is  the
	       user  who  runs the daemon regardless of	whether	the --user op-
	       tion is used or not.

       -r, --restart
	       Supervise and restart the program after a one-second  delay  if
	       it has been terminated.

       -R, --restart-delay restart_delay_seconds
	       Supervise  and restart the program after	the specified delay if
	       it has been terminated.

       -t, --title title
	       Set the title for the daemon process.  The default is the  dae-
	       monized invocation.

       -u, --user user
	       Login  name of the user to execute the program under.  Requires
	       adequate	superuser privileges.

       -s, --syslog-priority syslog_priority
	       These priorities	are accepted: emerg, alert, crit,  err,	 warn-
	       ing, notice, info, and debug.  The default is notice.

       -l, --syslog-facility syslog_facility
	       These  facilities  are accepted:	auth, authpriv,	console, cron,
	       daemon, ftp, kern, lpr,	mail,  news,  ntp,  security,  syslog,
	       user, uucp, and local0, ..., local7.  The default is daemon.

       -T, --syslog-tag	syslog_tag
	       Set  the	tag which is appended to all syslog messages.  The de-
	       fault is	daemon.

       If  any	of  the	 options  --child-pidfile,  --output-mask,  --restart,
       --restart-delay,	  --supervisor-pidfile,	  --syslog,  --syslog-facility
       --syslog-priority, --syslog-tag,	or --output, are specified,  the  pro-
       gram is executed	in a spawned child process.  The daemon	waits until it
       terminates  to  keep  the pid file(s) locked and	removes	them after the
       process exits or	restarts the program.  In this case if the  monitoring
       daemon receives software	termination signal (SIGTERM) it	forwards it to
       the  spawned process.  Normally it will cause the child to exit,	remove
       the pidfile(s) and then terminate.

       If neither file or syslog output	are selected, all output is redirected
       to the daemon process and written to stdout.   The  --close-fds	option
       may be used to suppress the stdout output completely.

       The  --supervisor-pidfile  option is useful combined with the --restart
       option as supervisor_pidfile contains the ID of the supervisor not  the
       child.	This  is  especially  important	 if you	use --restart in an rc
       script as the --child-pidfile option will give you the  child's	ID  to
       signal  when you	attempt	to stop	the service, causing daemon to restart
       the child.

EXIT STATUS
       The daemon utility exits	1 if an	error is returned by the daemon(3) li-
       brary routine, 2	if child_pidfile or supervisor_pidfile	is  requested,
       but  cannot  be opened, 3 if process is already running (pidfile	exists
       and  is	locked),  4  if	 syslog_priority  is  not   accepted,	5   if
       syslog_facility is not accepted,	6 if output_mask is not	within the ac-
       cepted range, 7 if output_file cannot be	opened for appending, and oth-
       erwise 0.

DIAGNOSTICS
       If the command cannot be	executed, an error message is printed to stan-
       dard  error.   The exact	behavior depends on the	logging	parameters and
       the --close-fds flag.

SEE ALSO
       nohup(1), setregid(2),  setreuid(2),  daemon(3),	 exec(3),  pidfile(3),
       termios(4), tty(4)

HISTORY
       The daemon utility first	appeared in FreeBSD 4.7.

FreeBSD	13.2		       January 14, 2021			     DAEMON(8)

NAME | SYNOPSIS | DESCRIPTION | EXIT STATUS | DIAGNOSTICS | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=daemon&sektion=8&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help