EnglishFrenchSpanish

Ad


OnWorks favicon

daemon - Online in the Cloud

Run daemon in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command daemon that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


daemon - turns other processes into daemons

SYNOPSIS


usage: daemon [options] [--] [cmd arg...]
options:

-h, --help - Print a help message then exit
-V, --version - Print a version message then exit
-v, --verbose[=level] - Set the verbosity level
-d, --debug[=level] - Set the debugging level

-C, --config=path - Specify the system configuration file
-N, --noconfig - Bypass the system configuration file
-n, --name=name - Guarantee a single named instance
-X, --command=cmd - Specify the client command as an option
-P, --pidfiles=/dir - Override standard pidfile location
-F, --pidfile=/path - Override standard pidfile name and location

-u, --user=user[:[group]] - Run the client as user[:group]
-R, --chroot=path - Run the client with path as root
-D, --chdir=path - Run the client in directory path
-m, --umask=umask - Run the client with the given umask
-e, --env="var=val" - Set a client environment variable
-i, --inherit - Inherit environment variables
-U, --unsafe - Allow execution of unsafe executable
-S, --safe - Deny execution of unsafe executable
-c, --core - Allow core file generation

-r, --respawn - Respawn the client when it terminates
-a, --acceptable=# - Minimum acceptable client duration (seconds)
-A, --attempts=# - Respawn # times on error before delay
-L, --delay=# - Delay between spawn attempt bursts (seconds)
-M, --limit=# - Maximum number of spawn attempt bursts
--idiot - Idiot mode (trust root with the above)

-f, --foreground - Run the client in the foreground
-p, --pty[=noecho] - Allocate a pseudo terminal for the client

-l, --errlog=spec - Send daemon's error output to syslog or file
-b, --dbglog=spec - Send daemon's debug output to syslog or file
-o, --output=spec - Send client's output to syslog or file
-O, --stdout=spec - Send client's stdout to syslog or file
-E, --stderr=spec - Send client's stderr to syslog or file

--running - Check if a named daemon is running
--restart - Restart a named daemon client
--stop - Terminate a named daemon process

DESCRIPTION


daemon(1) turns other processes into daemons. There are many tasks that need to be
performed to correctly set up a daemon process. This can be tedious. daemon performs these
tasks for other processes.

The preparatory tasks that daemon performs for other processes are:

· First revoke any setuid or setgid privileges that daemon may have been installed with
(by system administrators who laugh in the face of danger).

· Process command line options.

· Change the root directory if the --chroot option was supplied.

· Change the process uid and gid if the --user option was supplied. Only root can use
this option. Note that the uid of daemon itself is changed, rather than just changing
the uid of the client process.

· Read the system configuration file (/etc/daemon.conf by default, or specified by the
--config option) unless the --noconfig option was supplied. Then read the user's
configuration file (~/.daemonrc), if any. Generic options are processed first, then
options specific to the daemon with the given name. Note: The root directory and the
user must be set before access to the configuration file can be attempted so neither
--chroot nor --user options may appear in the configuration file.

· Disable core file generation to prevent leaking sensitive information in daemons run
by root (unless the --core option was supplied).

· Become a daemon process:

· If daemon was not invoked by init(8) or inetd(8):

· Background the process to lose process group leadership.

· Start a new process session.

· Under SVR4, background the process again to lose process session leadership.
This prevents the process from ever gaining a controlling terminal. This only
happens when SVR4 is defined and NO_EXTRA_SVR4_FORK is not defined when
libslack(3) is compiled. Before doing this, ignore SIGHUP because when the
session leader terminates, all processes in the foreground process group are
sent a SIGHUP signal (apparently). Note that this code may not execute (e.g.
when started by init(8) or inetd(8) or when either SVR4 was not defined or
NO_EXTRA_SVR4_FORK was defined when libslack(3) was compiled). This means that
the client can't make any assumptions about the SIGHUP handler.

· Change directory to the root directory so as not to hamper umounts.

· Clear the umask to enable explicit file creation modes.

· Close all open file descriptors. If daemon was invoked by inetd(8), stdin, stdout
and stderr are left open since they are open to a socket.

· Open stdin, stdout and stderr to /dev/null in case something requires them to be
open. Of course, this is not done if daemon was invoked by inetd(8).

· If the --name option was supplied, create and lock a file containing the process
id of the daemon process. The presence of this locked file prevents two instances
of a daemon with the same name from running at the same time. The standard
location of the pidfile is /var/run for root or /tmp for ordinary users. If the
--pidfiles option was supplied, its argument specifies the directory in which the
pidfile will be placed. If the --pidfile option was supplied, its argument
specifies the name of the pidfile and the directory in which it will be placed.

· If the --umask option was supplied, set the umask to its argument. Otherwise, set the
umask to 022 to prevent clients from accidentally creating group or world writable
files.

· Set the current directory if the --chdir option was supplied.

· Spawn the client command and wait for it to terminate. The client command may be
specified as command line arguments or as the argument of the --command option. If
both the --command option and command line arguments are present, the client command
is the result of appending the command line arguments to the argument of the --command
option.

· If the --syslog, --outlog and/or --errlog options were supplied, the client's standard
output and/or standard error are captured by daemon and sent to the respective syslog
destinations.

· When the client terminates, daemon respawns it if the --respawn option was supplied.
If the client ran for less than 300 seconds (or the value of the --acceptable option),
then daemon sees this as an error. It will attempt to restart the client up to five
times (or the value of the --attempts option) before waiting for 300 seconds (or the
value of the --delay option). This gives the administrator the chance to correct
whatever is preventing the client from running without overloading system resources.
If the --limit option was supplied, daemon terminates after the specified number of
spawn attempt bursts. The default is zero which means never give up, never surrender.

When the client terminates and the --respawn option wasn't supplied, daemon
terminates.

· If daemon receives a SIGTERM signal, it propagates the signal to the client and then
terminates.

· If daemon receives a SIGUSR1 signal (from another invocation of daemon supplied with
the --restart option), it sends a SIGTERM signal to the client. If started with the
--respawn option, the client process will be restarted after it is killed by the
SIGTERM signal.

· If the --foreground option was supplied, the client process is run as a foreground
process and is not turned into a daemon. If daemon is connected to a terminal, so will
the client process. If daemon is not connected to a terminal but the client needs to
be connected to a terminal, use the --pty option.

OPTIONS


-h, --help
Display a help message and exit.

-V, --version
Display a version message and exit.

-v[level], --verbose[=level]
Set the message verbosity level to level (or 1 if level is not supplied). daemon does
not have any verbose messages so this has no effect unless the --running option is
supplied.

-d[level], --debug[=level]
Set the debug message level to level (or 1 if level is not supplied). Level 1 traces
high level function calls. Level 2 traces lower level function calls and shows
configuration information. Level 3 adds environment variables. Level 9 adds every
return value from select(2) to the output. Debug messages are sent to the destination
specified by the --dbglog option (by default, the syslog(3) facility, daemon.debug).

-C path, --config=path
Specify the configuration file to use. By default, /etc/daemon.conf is the
configuration file if it exists and is not group or world writable and does not exist
in a group or world writable directory. The configuration file lets you predefine
options that apply to all clients and to specifically named clients.

-N, --noconfig
Bypass the system configuration file, /etc/daemon.conf. Only the user's ~/.daemonrc
configuration file will be read (if it exists).

-n name, --name=name
Create and lock a pid file (/var/run/name.pid), ensuring that only one daemon with the
given name is active at the same time.

-X cmd, --command=cmd
Specify the client command as an option. If a command is specified along with its name
in the configuration file, then daemons can be started merely by mentioning their
name:

daemon --name ftumpch

Note: Specifying the client command in the configuration file means that no shell
features are available (i.e. no meta characters).

-P /dir, --pidfiles=/dir
Override the standard pidfile location. The standard pidfile location is user
dependent: root's pidfiles live in /var/run. Normal users' pidfiles live in /tmp. This
option can only be used with the --name option. Use this option if these locations are
unacceptable but make sure you don't forget where you put your pidfiles. This option
is best used in configuration files or in shell scripts, not on the command line.

-F /path, --pidfile=/path
Override the standard pidfile name and location. The standard pidfile location is
described immediately above. The standard pidfile name is the argument of the --name
option followed by .pid. Use this option if the standard pidfile name and location are
unacceptable but make sure you don't forget where you put your pidfile. This option
should only be used in configuration files or in shell scripts, not on the command
line.

-u user[:[group]], --user=user[:[group]]
Run the client as a different user (and group). This only works for root. If the
argument includes a :group specifier, daemon will assume the specified group and no
other. Otherwise, daemon will assume all groups that the specified user is in. For
backwards compatibility, "." may be used instead of ":" to separate the user and group
but since "." may appear in user and group names, ambiguities can arise such as using
--user=u.g with users u and u.g and group g. With such an ambiguity, daemon will
assume the user u and group g. Use --user=u.g: instead for the other interpretation.

-R path, --chroot=path
Change the root directory to path before running the client. On some systems, only
root can do this. Note that the path to the client program and to the configuration
file (if any) must be relative to the new root path.

-D path, --chdir=path
Change the directory to path before running the client.

-m umask, --umask=umask
Change the umask to umask before running the client. umask must be a valid octal mode.
The default umask is 022.

-e var=val, --env=var=val
Set an environment variable for the client process. This option can be used any number
of times. If it is used, only the supplied environment variables are passed to the
client process. Otherwise, the client process inherits the current set of environment
variables.

-i, --inherit
Explicitly inherit environment variables. This is only needed when the --env option is
used. When this option is used, the --env option adds to the inherited environment,
rather than replacing it.

-U, --unsafe
Allow reading an unsafe configuration file and execution of an unsafe executable. A
configuration file or executable is unsafe if it is group or world writable or is in a
directory that is group or world writable (following symbolic links). If an executable
is a script interpreted by another executable, then it is considered unsafe if the
interpreter is unsafe. If the interpreter is /usr/bin/env (with an argument that is a
command name to be searched for in $PATH), then that command must be safe. By default,
daemon(1) will refuse to read an unsafe configuration file or to execute an unsafe
executable when run by root. This option overrides that behaviour and hence should
never be used.

-S, --safe
Deny reading an unsafe configuration file and execution of an unsafe executable. By
default, daemon(1) will allow reading an unsafe configuration file and execution of an
unsafe executable when run by ordinary users. This option overrides that behaviour.

-c, --core
Allow the client to create a core file. This should only be used for debugging as it
could lead to security holes in daemons run by root.

-r, --respawn
Respawn the client when it terminates.

-a #, --acceptable=#
Specify the minimum acceptable duration in seconds of a client process. The default
value is 300 seconds. It cannot be set to less than 10 seconds except by root when
used in conjunction with the --idiot option. This option can only be used with the
--respawn option.

less than this, it is considered to have failed.

-A #, --attempts=#
Number of attempts to spawn before delaying. The default value is 5. It cannot be set
to more than 100 attempts except by root when used in conjunction with the --idiot
option. This option can only be used with the --respawn option.

-L #, --delay=#
Delay in seconds between each burst of spawn attempts. The default value is 300
seconds. It cannot be set to less than 10 seconds except by root when used in
conjunction with the --idiot option. This option can only be used with the --respawn
option.

-M #, ---limit=#
Limit the number of spawn attempt bursts. The default value is zero which means no
limit. This option can only be used with the --respawn option.

--idiot
Turn on idiot mode in which daemon will not enforce the minimum or maximum values
normally imposed on the --acceptable, --attempts and --delay option arguments. The
--idiot option must appear before any of these options. Only the root user may use
this option because it can turn a slight misconfiguration into a lot of wasted CPU
effort and log messages.

-f, --foreground
Run the client in the foreground. The client is not turned into a daemon.

-p[noecho], --pty[=noecho]
Connect the client to a pseudo terminal. This option can only be used with the
--foreground option. This is the default when the --foreground option is supplied and
daemon's standard input is connected to a terminal. This option is only necessary when
the client process must be connected to a controlling terminal but daemon itself has
been run without a controlling terminal (e.g. from cron(8) or a pipeline).

If the noecho argument is supplied with this option, the client's side of the pseudo
terminal will be set to noecho mode. Use this only if there really is a terminal
involved and input is being echoed twice.

-l spec, --errlog=spec
Send daemon's standard output and error to the syslog destination or file specified by
spec. If spec is of the form "facility.priority", then output is sent to syslog(3).
Otherwise, output is appended to the file whose path is given in spec. By default,
output is sent to daemon.err.

-b spec, --dbglog=spec
Send daemon's debug output to the syslog destination or file specified by spec. If
spec is of the form "facility.priority", then output is sent to syslog(3). Otherwise,
output is appended to the file whose path is given in spec. By default, output is sent
to daemon.debug.

-o spec, --output=spec
Capture the client's standard output and error and send it to the syslog destination
or file specified by spec. If spec is of the form "facility.priority", then output is
sent to syslog(3). Otherwise, output is appended to the file whose path is given in
spec. By default, output is discarded unless the --foreground option is present. In
this case, the client's stdout and stderr are propagated to daemon's stdout and stderr
respectively.

-O spec, --stdout=spec
Capture the client's standard output and send it to the syslog destination or file
specified by spec. If spec is of the form "facility.priority", then output is sent to
syslog(3). Otherwise, stdout is appended to the file whose path is given in spec. By
default, stdout is discarded unless the --foreground option is present, in which case,
the client's stdout is propagated to daemon's stdout.

-E spec, --stderr=spec
Capture the client's standard error and send it to the syslog destination specified by
spec. If spec is of the form "facility.priority", then stderr is sent to syslog(3).
Otherwise, stderr is appended to the file whose path is given in spec. By default,
stderr is discarded unless the --foreground option is present, in this case, the
client's stderr is propagated to daemon's stderr.

--running
Check whether or not a named daemon is running, then exit(3) with EXIT_SUCCESS if the
named daemon is running or EXIT_FAILURE if it isn't. If the --verbose option is
supplied, print a message before exiting. This option can only be used with the --name
option. Note that the --chroot, --user, --name, --pidfiles and --pidfile (and possibly
--config) options must be the same as for the target daemon. Note that the --running
option must appear before any --pidfile or --pidfiles option when checking if another
user's daemon is running otherwise you might get an error about the pidfile directory
not being writable.

--restart
Instruct a named daemon to terminate and restart its client process. This option can
only be used with the --name option. Note that the --chroot, --user, --name,
--pidfiles and --pidfile (and possibly --config) options must be the same as for the
target daemon.

--stop
Stop a named daemon then exit(3). This option can only be used with the --name option.
Note that the --chroot, --user, --name, --pidfiles and --pidfile (and possibly
--config) options must be the same as for the target daemon.

As with all other programs, a -- argument signifies the end of options. Any options that
appear on the command line after -- are part of the client command.

Use daemon online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

Linux commands

Ad