CHRONYD(8)
๐ CHRONYD(8) โ the system administration girlies' edition ๐
okay bestie, sit down, hydrate, because we're about to talk about chronyd โ the chrony daemon itself. section 8, system administration, she's that girl. ๐
๐ธ NAME ๐ธ
chronyd โ literally just, the chrony daemon. that's her. that's the whole name. iconic.
โจ SYNOPSIS โจ
chronyd [OPTION]... [DIRECTIVE]...
that's it. that's the summoning ritual. ๐ฏ๏ธ
๐ฆ DESCRIPTION ๐ฆ
so chronyd is a daemon for synchronisation of the system clock. and no, she doesn't just do one thing, she does everything:
- she can sync your clock with NTP servers ๐
- she can sync with reference clocks (think a GPS receiver, very main character energy ๐ก)
- she can sync with manual input โ like, from a wristwatch โ and a keyboard โจ๏ธ, via
chronyc - and she can also operate as an NTPv4 (RFC 5905) server and peer, so she can hand out a time service to all the other computers in the network like the generous queen she is ๐
if you don't pass any configuration directives on the command line, chronyd will just read them from a configuration file instead. the compiled-in default location of that file is /etc/chrony.conf. ๐
and where do the messages go? informational messages, warnings, and errors all get logged to syslog. periodt. ๐
๐ OPTIONS ๐
every single flag, in order, no skips, because we don't leave girls behind:
-4โ with this one, hostnames get resolved to IPv4 addresses only, and only IPv4 sockets get created. v4 girlies only, sorry.-6โ same energy, opposite direction: hostnames resolve to IPv6 addresses only and only IPv6 sockets get created. โจ-ffile โ use this to point at an alternate location for the configuration file. the compiled-in default value is/etc/chrony.conf. ๐๏ธ-nโ in this mode the program will not detach itself from the terminal. she stays attached. clingy in the best way. ๐ซถ-dโ same as not detaching from the terminal, but also all messages get written to the terminal instead ofsyslog. and ifchronydwas compiled with enabled support for debugging, you can pass this option twice to enable debug messages. two times the-d, two times the chaos. ๐-lfile โ enables writing of log messages to a file, instead ofsyslogor the terminal. ๐-Llevel โ sets the minimum severity level of messages written to the log file,syslog, or terminal. the levels you can specify are:-1(debug, only if compiled with enabled support for debugging),0(informational),1(warning),2(non-fatal error), and3(fatal error). default value is0. ๐ฆ-pโ in this modechronydwill print the configuration and exit. she will not detach from the terminal. super handy for verifying the syntax of your config and getting the whole configuration, even when it's split into multiple files and read by theincludeorconfdirdirective. like a config reveal, slay. ๐-qโ in this modechronydwill set the system clock once and exit. will not detach from the terminal. one and done. ๐ซ-Qโ similar to-q, except it only prints the offset without making any corrections of the clock, and it disables server ports sochronydcan be started without root privileges โ assuming your configuration doesn't have any directives that would require them (e.g.refclock,hwtimestamp,rtcfile, etc). look but don't touch. ๐-rโ tries to reload and then delete files containing sample histories for each of the servers and reference clocks being used. those files are expected to be in the directory specified by thedumpdirdirective in the configuration file. useful if you wanna stop and restartchronydbriefly for any reason, e.g. to install a new version. however โ and this is a big however โ it should be used only on systems where the kernel can maintain clock compensation whilst not underchronyd's control (i.e. Linux, FreeBSD, NetBSD, OpenBSD, illumos, and macOS 10.13 or later). read that twice bestie. ๐-Rโ when used, theinitstepslewdirective and themakestepdirective used with a positive limit will be ignored. useful when restartingchronyd, and it can be used together with the-roption. besties fr fr. ๐ค-sโ sets the system clock from the computer's real-time clock (RTC), or to the last modification time of the file specified by thedriftfiledirective. real-time clocks are supported only on Linux. ๐ง
if used together with the -r flag, chronyd will attempt to preserve the old samples after setting the system clock from the RTC. this can be used to let chronyd perform long term averaging of the gain or loss rate across system reboots, and it's useful for systems with intermittent access to network that are shut down when not in use. for this to work well, it relies on chronyd having been able to determine accurate statistics for the difference between the RTC and system clock the last time the computer was on. ๐
and if the last modification time of the drift file is later than both the current time and the RTC time, the system time will be set to it, to restore the time when chronyd was previously stopped. useful on computers that have no RTC, or where the RTC is broken (e.g. it has no battery). RIP to that CMOS battery ๐ชฆ
-ttimeout โ sets a timeout (in seconds) after whichchronydwill exit. if the clock is not synchronised, it will exit with a non-zero status. useful with-qor-Qto shorten the maximum time waiting for measurements, or with-rto limit the time whenchronydis running, but still allow it to adjust the frequency of the system clock. โฐ-uuser โ sets the name of the system user to whichchronydwill switch after start, in order to drop root privileges. it overrides theuserdirective. the compiled-in default value ischrony. ๐
on Linux, chronyd needs to be compiled with support for the libcap library. on macOS, FreeBSD, NetBSD, OpenBSD, and illumos, chronyd forks into two processes. the child process retains root privileges, but can only perform a very limited range of privileged system calls on behalf of the parent. ๐ผ
-Uโ disables a check for root privileges, sochronydcan be started under a non-root user โ assuming the process will have all capabilities (e.g. provided by the service manager) and access to all files, directories, and devices needed to operate correctly in the specified configuration. note that different capabilities might be needed with different configurations and different Linux kernel versions.
โ ๏ธ starting chronyd under a non-root user is not recommended when the configuration is not known, or at least limited to specific directives. be careful bestie, this is the risky one ๐ญ
-Flevel โ configures system call filters loaded bychronydprocesses, if it was compiled with support for the Linux secure computing (seccomp) facility or OpenBSD pledge. for Linux three levels are defined:0,1,2; for OpenBSD two levels:0,1. the filters are disabled at level0. on Linux at levels 1 and 2, and on OpenBSD at level 1,chronydwill be killed if it makes a system call which is blocked by the filters. ๐ on Linux the level can be specified as a negative number to trigger theSIGSYSsignal instead ofSIGKILL, which can be useful for debugging. the default value is0.
on Linux at level 1, the filters allow only selected system calls that are normally expected to be made by chronyd. other system calls are blocked. this level is recommended only if it is known to work on the version of the system where chrony is installed. the filters need to allow also system calls made by libraries that chronyd is using (e.g. libc), but different versions or implementations of the libraries might make different system calls. if the filters are missing a system call, chronyd could be killed even in normal operation. ๐ญ that's the whole tea.
at level 2, the filters block only a small number of specific system calls (e.g. fork and exec). this approach should avoid false positives, but the protection of the system against a compromised chronyd process is much more limited. ๐ก๏ธ
๐ซ the filters cannot be enabled with the mailonchange directive. no exceptions, periodt.
-Ppriority โ on Linux, FreeBSD, NetBSD, OpenBSD, and illumos this option selects theSCHED_FIFOreal-time scheduler at the specified priority (which must be between0and100). on macOS, this option must have either a value of0to disable the thread time constraint policy, or1for the policy to be enabled. other systems do not support this option. the default value is0. ๐๏ธ-mโ lockschronydinto RAM so she will never be paged out. this mode is only supported on Linux, FreeBSD, NetBSD, OpenBSD, and illumos. she stays resident, she stays ready. ๐-xโ disables the control of the system clock.chronydwill not try to make any adjustments of the clock. it will assume the clock is free running and still track its offset and frequency relative to the estimated true time. this letschronydbe started without the capability to adjust or set the system clock (e.g. in some containers) to operate as an NTP server. โ๐-Nfd โ specifies a file descriptor thatchronydwill write a newline to after it is fully initialised. this is to notify a service supervisor thatchronydis in a ready state. when using this option, you should also specify that this is a non-forking service by using either the-nor-doption. ๐ฃ-v,--versionโ prints the version number to the terminal and exits. ๐ท๏ธ-h,--helpโ prints a help message to the terminal and exits. ๐
๐ ENVIRONMENT VARIABLES ๐
LISTEN_FDSโ on Linux systems, thesystemdservice manager may pass file descriptors for pre-initialised sockets tochronyd. the service manager allocates and binds the file descriptors, and passes a copy to each spawned instance of the service. this allows for zero-downtime service restarts as the sockets buffer client requests until the service is able to handle them. the service manager sets theLISTEN_FDSenvironment variable to the number of passed file descriptors. ๐โจNOTIFY_SOCKETโ thesystemdservice manager sets this variable for services of thenotifytype.chronydsends a message to this socket when it is fully initialised and ready to accept commands (e.g. fromchronyc), with the clock already set if using the-soption orinitstepslewdirective. it's an alternative to theforkingservice type, which does not need the PID file.chronydneeds to be started with the-nor-doption to not fork. ๐จ
๐ FILES ๐
/etc/chrony.conf
๐ SEE ALSO ๐
go read those too, they're required reading for the girlies. ๐
๐ BUGS ๐
for instructions on how to report bugs, please visit https://chrony-project.org/. yes, actually tell them. they want to know. constructive feedback is self care. ๐ซถ
๐ AUTHORS ๐
chrony was written by Richard Curnow, Miroslav Lichvar, and others. legends, honestly. ๐
okay that's the whole page, you made it to the end, I'm so proud of you ๐ฅน this was chrony 4.9, dated 2026-08-27, and it lives in section 8 of the manual โ go forth and sync those clocks bestie, no cap, fr fr, periodt ๐โจ๐ฆ๐ธ๐
๐ฆ where this page comes from
- centos-stream 10: chrony 4.9-1.el10 ยท GPL-2.0-only
- centos-stream 9: chrony 4.9-1.el9 ยท GPLv2
- fedora 44: chrony 4.9-1.fc44 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms