1
1月
2026
23:56

如何在 antiX Runit 中设置时间同步:在 Runit 中创建 ntpd 服务

1 1月 2026 23:56

使用 Runit 服务初始化系统的 antiX 发行版默认情况下无法通过互联网同步时间。本文提供了一种在 runit 中配置和启动 ntpd 服务以实现时间同步的解决方案。

简介

runit 系统是 Linux 的非标准系统。它比 systemd 更轻量级。

与 SystemD 不同,Runit 没有 ntpd 服务或 timedatectl 命令(参见 systemd 中关于时间同步的文章)。另一方面,在 runit 中管理服务更简单——它不使用复杂的 Unit's,而是使用“run”配置文件和“sv” supervisor 命令。

解决方案

1) 安装 ntp 工具,本文最后会将其配置为 ntpd 服务。

sudo apt update

sudo sudo apt install ntp

2) 创建一个用于存放服务设置的文件夹。antiX 使用 /etc/sv 文件夹。

cd /etc/sv

sudo mkdir ntpd

3) 创建一个 run 命令文件。

cd /etc/sv/ntpd

sudo nano run

将以下文本添加到文件中以启动“run”服务:

#!/bin/sh

/etc/sv/ntpd/run

exec /usr/sbin/ntpd -d -p /run/ntpd.pid -c /etc/ntp.conf

其中 -c /etc/ntp.conf 是配置文件名。

3) 授予执行权限 (+x):

sudo chmod +x run

4) 在 services 目录下创建符号链接:

sudo ln -s /etc/sv/ntpd /etc/service/

5) 为 ntpsec 组件日志创建文件夹:

cd /var/log

sudo mkdir runit

cd runit

sudo mkdir ntpsec

6) 编辑 /etc/ntp.conf 文件(默认情况下为空)。

sudo nano /etc/ntp.conf

我的 NTP 客户端配置文件如下:

# 常规配置

pool 0.europe.pool.ntp.org iburst

pool 1.europe.pool.ntp.org iburst

pool 2.europe.pool.ntp.org iburst

本地时钟(备用)

server 127.127.1.0

fudge 127.127.1.0 stratum 10

文件位置

driftfile /var/lib/ntp/ntp.drift

监控日志文件 [8]

logfile /var/log/ntp.log

--- 访问控制 ---

默认拒绝所有访问,但允许 localhost (127.0.0.1, ::1) [5, 8]。

限制默认 kod nomodify notrap nopeer noquery

限制 127.0.0.1

限制 ::1

保存。Ctrl+S,Ctrl+X。

7) 创建符号链接以启动服务。链接到 /etc/service/ 目录下的 /etc/sv/ntpd 目录:

sudo ln -s /etc/sv/ntpd /etc/service/

ls -ld /etc/service/ntpd

8) 选择您的时区

sudo dpkg-reconfigure tzdata

上述命令创建了一个符号链接。使用以下命令检查:

ls -l /etc/localtime

结果:"/etc/localtime -> /usr/share/zoneinfo/Europe/Moscow"

8) 使用 sv supervisor 命令启动 ntpd 服务

sudo sv start ntpd

9) 检查服务状态以及启动失败时的处理方法

sudo sv status ntpd

ps aux | grep ntpd

sudo kill -9 PID

其中 PID 是 /usr/sbin/ntpd 的进程号 -d -p /run/ntpd.pid -c /etc/ntp.conf

10) 使用 sv supervisor 命令重启 ntpd 服务

sudo sv start ntpd

命令输出应类似于:

ok: run: ntpd: (pid 32041) 53s

结果

antiX 时钟现在显示本地时间(在本例中为莫斯科时间),而不是 UTC 时间。