当我尝试使用 NTP 同步时间时。使用以下命令
sudo ntpdate -b pool.ntp.org
我收到这个错误说NTP 套接字正在使用中。如何修复此问题?
18 Jan 05:53:49 ntpdate[21340]: the NTP socket is in use, exiting
答案1
NTP 套接字正在使用中,退出
表示您正在运行 NTP 守护程序,通常是通过ntp
包。您不能同时有两个应用程序调整时钟。
首先停止当前正在运行的 NTP 守护进程:
sudo service ntp stop
运行您的
ntpdate
命令。再次启动 NTP 守护进程:
sudo service ntp start
背景
NTP 守护进程不会大步前进或后退,但对于非常平稳和小的过渡很有用。ntpdate
因此,在它正常工作之前,请先使用同步时间。您可以像这样查询守护进程的状态:
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*chime1.surfnet. 194.171.167.130 2 u 59 64 7 3.159 -0.207 0.136
+chime2.surfnet. .GPS. 1 u 59 64 7 6.872 -0.592 0.091
[...]
ns1.tudelft.nl .INIT. 16 u - 64 0 0.000 0.000 0.000
+ev001.tilaa.nl 193.67.79.202 2 u 55 64 7 4.038 -0.613 0.110
答案2
NTP socket in use
如果您收到如下所示的错误:
在这种情况下只需运行
$ sudo service ntp stop
$ sudo ntpdate pool.ntp.org
$ sudo service ntp start
你会得到
或者直接跑
sudo ntpdate -u pool.ntp.org
使用 ntpd 守护进程运行更新
答案3
一个常见的问题是,人们发现他们的计算机在指定的 DST(夏令时)转换时没有更新。一旦意识到这一点,用户就会尝试使用sudo ntpdate -b pool.ntp.org
或类似方法更正时间,结果却发现 NTP 已在运行,而且根本不起作用。
在一般情况下,NTP 无法在 DST 转换时校正您的时钟。例如,NTP 有时会拒绝设置你的时钟。搜索 NTP 问题时,您会得到大量结果,因此显然 NTP 的局限性已经影响了许多人。我相信任何 NTP 设计决策都有充分的理由,但这并不能改变这样一个事实:它不能被信任总是按照普通用户的期望去做。
如果出于某些特定目的它对你来说很重要,请务必检查它。 如果你手动设置正确的时间,自动夏令时转换可能会更顺利之前过渡。
对于普通用户来说,这是一个难以尝试的问题,因为夏令时每年仅发生两次。
答案4
如果 ntp deamen 已安装并正在运行,您将会收到相同的错误,因为您无法同时通过两个程序调整时钟。
如果服务正在运行,它将同步到 /etc/ntp.conf 中的服务器,这样时间就会同步。最好每晚重新启动 ntp 守护进程,这样如果它以某种方式停止,每天都会启动,请在 crontab 中设置它。
crontab -e
@daily sudo service ntp restart >> /tmp/time.log
您可以通过以下命令检查服务器同步的详细信息
ntpq -p