//po4a: entry man manual
////
Copyright 2007 by Theodore Ts'o.  All Rights Reserved.
This file may be copied under the terms of the GNU General Public License.
////
ifdef::neverdefined[---]

= uuidd(8)
:doctype: manpage
:man manual: System Administration
:man source: util-linux {release-version}
:page-layout: base
:command: uuidd

== NAME

uuidd - UUID generation daemon

== SYNOPSIS

*uuidd* [options]

== DESCRIPTION

The *uuidd* daemon is used by the UUID library to generate universally unique identifiers (UUIDs), especially time-based UUIDs, in a secure and guaranteed-unique fashion, even in the face of large numbers of threads running on different CPUs trying to grab UUIDs.

== OPTIONS

*-C*, *--cont-clock*[**=**_number_[*hd*]]::
Activate continuous clock handling for time-based UUIDs. *uuidd* could
use all possible clock values, beginning with the daemon's start time.
The optional argument can be used to set a value for 'max_clock_offset'.
This guarantees that a clock value of a UUID will always be within the
range of 'max_clock_offset'.
+
The option *-C* or *--cont-clock* (without an argument) enables the
feature with a default 'max_clock_offset' of 2 hours.
+
The option **-C**_number_ or **--cont-clock=**_number_ enables the
feature with a 'max_clock_offset' of _number_ seconds.
In case of an appended *h* or *d*, _number_ is understood in hours or days.
The minimum value is 60 seconds, the maximum value is 365 days.

*-d*, *--debug*::
Run *uuidd* in debugging mode. This prevents *uuidd* from running as a daemon.

*-F*, *--no-fork*::
Do not daemonize using a double-fork.

*-k*, *--kill*::
If currently a uuidd daemon is running, kill it.

*-n*, *--uuids* _number_::
When issuing a test request to a running *uuidd*, request a bulk response of _number_ UUIDs.

*-P*, *--no-pid*::
Do not create a pid file.

*-p*, *--pid* _path_::
Specify the pathname where the pid file should be written. By default, the pid file is written to _{runstatedir}/uuidd/uuidd.pid_.
// TRANSLATORS: Don't translate _{runstatedir}_.

*-q*, *--quiet*::
Suppress some failure messages.

*-r*, *--random*::
Test uuidd by trying to connect to a running uuidd daemon and request it to return a random-based UUID.

*-S*, *--socket-activation*::
Do not create a socket but instead expect it to be provided by the calling process. This implies *--no-fork* and *--no-pid*. This option is intended to be used only with *systemd*(1). It needs to be enabled with a configure option.

*-s*, *--socket* _path_::
Make uuidd use this pathname for the unix-domain socket. By default, the pathname used is _{runstatedir}/uuidd/request_. This option is primarily for debugging purposes, since the pathname is hard-coded in the *libuuid* library.
// TRANSLATORS: Don't translate _{runstatedir}_.

*-T*, *--timeout* _number_::
Make *uuidd* exit after _number_ seconds of inactivity.

*-t*, *--time*::
Test *uuidd* by trying to connect to a running uuidd daemon and request it to return a time-based UUID.

include::man-common/help-version.adoc[]

== EXAMPLE

Start up a daemon, print 42 random keys, and then stop the daemon:

....
uuidd -p /tmp/uuidd.pid -s /tmp/uuidd.socket
uuidd -d -r -n 42 -s /tmp/uuidd.socket
uuidd -d -k -s /tmp/uuidd.socket
....

== AUTHOR

The *uuidd* daemon was written by mailto:tytso@mit.edu[Theodore Ts'o].

== SEE ALSO

*uuid*(3),
*uuidgen*(1)

include::man-common/bugreports.adoc[]

include::man-common/footer.adoc[]

ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
