跳到主要内容

chronyd 命令

介绍

chronyd(英文全拼:chrony daemon)是 Chrony 时间同步服务的守护进程。Chrony 是网络时间协议(NTP)的一种实现,也是一个类 Unix 系统上 ntpd 服务的替代品,包括 chronyc 客户端和 chronyd 服务端两部分。

chronyd 可以将时钟与 NTP 服务器、参考时钟(例如 GPS 接收器)同步,并通过 chronyc 使用手表和键盘进行手动输入。它还可以作为 NTPv4(RFC 5905)服务器和对等方运行,为网络中的其他计算机提供时间服务。

提示

如果在命令行上没有指定配置指令,chronyd 将从配置文件中读取它们,默认位置是 /etc/chrony/chrony.conf。另外,chronyd 运行的消息和警告将记录到 syslog 系统日志中。

语法

chronyd [-4|-6] [-n|-d] [-q|-Q] [-r] [-R] [-s] [-t TIMEOUT] [-f FILE|COMMAND...]

选项

  • -4:使用此选项,主机名将仅解析为 IPv4 地址,并且仅创建 IPv4 套接字。
  • -6:使用此选项,主机名将仅解析为 IPv6 地址,并且仅创建 IPv6 套接字。
  • -f file:此选项可用于指定配置文件的备用位置(默认为 /etc/chrony/chrony.conf)。
  • -n:当在此模式下运行时,程序不会将自身与终端分离。
  • -d:在此模式下运行时,程序不会将自身与终端分离,并且所有消息都将写入终端而不是系统日志。当 chronyd 编译时带有调试支持时,可以使用此选项两次来打印调试消息。
  • -l file:此选项指定一个应该用于记录而不是系统日志或终端的文件。
  • -q:当在此模式下运行时,chronyd 将设置一次系统时钟并退出。该模式下,它不会与终端分离。
  • -Q:此选项与 -q 选项类似,不同之处在于它仅打印偏移量而不对时钟进行任何更正,并且它允许 chronyd 在没有 root 权限的情况下启动。
  • -r:此选项将尝试重新加载,然后删除包含每个服务器和正在使用的参考时钟的示例历史记录的文件。这些文件应位于配置文件中 dumpdir 指令指定的目录中。如果你出于任何原因想要暂时停止并重新启动 chronyd,则此选项非常有用,例如安装新版本。但是,它只能用于内核可以维持时钟补偿但不受 chronyd 控制的系统(即 Linux、FreeBSD、NetBSD、Solaris 和 macOS 10.13 或更高版本)。
  • -R:使用此选项时,将忽略 initstepslew 指令和使用正限制的 makestep 指令。该选项在重新启动 chronyd 时很有用,并且可以与 -r 选项结合使用。
  • -s:此选项将从计算机的实时时钟(RTC)设置系统时钟或由 driftfile 指令指定的文件的最后修改时间。仅 Linux 支持实时时钟。如果与 -r 标志结合使用,chronyd 将在从 RTC 设置系统时钟后尝试保留旧样本。这可用于允许 chronyd 对系统重新启动期间的增益或丢失率执行长期平均,并且对于间歇性访问网络且在不使用时关闭的系统非常有用。为了使其正常工作,它依赖于 chronyd 能够确定计算机上次打开时 RTC 和系统时钟之间差异的准确统计数据。如果漂移文件的最后修改时间晚于当前时间和 RTC 时间,系统时间将被设置为它以恢复 chronyd 先前停止时的时间。这对于没有 RTC 或 RTC 损坏(例如没有电池)的计算机很有用。
  • -t timeout:此选项设置超时(以秒为单位),超过此时间 chronyd 将退出。如果时钟不同步,它将以非零状态退出。这对于缩短等待测量的最大时间的 -q-Q 选项很有用,或者与 -r 选项一起限制 chronyd 运行的时间,但仍然允许它调整系统时钟的频率。
  • -u user:此选项设置 chronyd 在启动后将切换到的系统用户的名称,以放弃 root 权限。它覆盖用户指令(默认_chrony)。在 Linux 上,chronyd 需要在编译时支持 libcap 库。在 macOS 上,FreeBSD、NetBSD 和 Solaris chronyd 分叉为两个进程。子进程保留 root 权限,但只能代表父进程执行非常有限范围的特权系统调用。
  • -F level:当 chronyd 编译为支持 Linux 安全计算(seccomp)工具时,此选项配置系统调用过滤器。在级别 1 中,当进行禁止的系统调用时,进程将被终止;在级别 -1 中,将抛出 SIGSYS 信号;在级别 0 中,过滤器被禁用(默认为 0)。建议仅当已知过滤器适用于安装 chrony 的系统版本时才启用过滤器,因为过滤器还需要允许从 chronyd 正在使用的库(例如 libc)以及库的不同版本或实现进行的系统调用 可能会进行不同的系统调用。如果过滤器缺少某些系统调用,即使在正常操作下,chronyd 也可能被终止。
  • -P priority:在 Linux 上,此选项将以指定的优先级(必须在 0 到 100 之间)选择 SCHED_FIFO 实时调度程序。在 macOS 上,此选项的值必须为 0(默认值)以禁用线程时间限制策略,或为 1 以启用该策略。其他系统不支持此选项。
  • -m:此选项会将 chronyd 锁定到 RAM 中,这样它就永远不会被调出。注意,此模式仅在 Linux 上受支持。
  • -x:该选项禁用系统时钟的控制。chronyd 不会尝试对时钟进行任何调整。它将假设时钟自由运行,并且仍然跟踪其相对于估计真实时间的偏移和频率。此选项允许 chronyd 在无法调整或设置系统时钟(例如在某些容器中)的情况下运行,以便作为 NTP 服务器运行。当另一个进程控制系统时钟时,不建议运行 chronyd(带或不带 -x)。
  • -v:打印 chronyd 的版本号并退出。

示例

启动 chronyd 守护进程:

sudo systemctl start chronyd

停止 chronyd 守护进程:

sudo systemctl stop chronyd

重新加载 chronyd 的配置文件:

sudo systemctl reload chronyd