如何检查 ntpd 是否仍在运行和同步
How to check ntpd is still running and synced
我正在调用 ntp_gettime(( 并且它按预期执行,但是如果我杀死 ntpd,我仍然会得到正确的行为,我的返回值显示没有问题。这表明ntp_gettime((不会调用ntpd,这是我认为正在发生的事情。
我正在尝试检查 ntpd 是否仍在正常运行,并且它仍然具有有效的连接。我现在假设 ntpd 根据定义的时间间隔更新系统,而 ntp_gettime(( 调用仅调用系统。
我的问题是 ntp_gettime(( 可以用来确定 ntpd 是否正在运行并且服务器连接仍然有效,我只是在某处犯了错误吗? 如果没有,有没有办法做到这一点?
您的问题的答案是"否"。这不是 NTP 服务器的接口,不能用于确定 NTP 服务器的状态。这是完全不同的东西。根据 glibc 文档:
ntp_gettime和ntp_adjtime功能提供了一个接口 监控和操纵系统时钟以保持高精度 时间。例如,您可以微调时钟的速度或 将其与另一个时间源同步。
这些功能的典型用法是由服务器实现 网络时间协议,用于同步多个系统的时钟 和高精度时钟。
换句话说,这是NTP服务器本身用来与内核通信,以处理业务的内容。
检查守护程序操作
ntpctl 是一个程序,用于显示有关正在运行的 ntpd 守护程序的信息,以下命令将为您提供有关守护程序正在与多少服务器同步、系统时钟的状态(如果已同步/未同步(以及时钟偏移的信息。有关更多信息,请参阅 ntpctl https://man.openbsd.org/ntpctl 的手册页。Openntpd 包为您带来了 ntpctl 程序。
ntpctl -s all
我最终这样做的方法是使用管道进行 ntpstat 调用并处理输出。 也就是说,我检查未同步、已同步和是否未同步(在检查未同步后(,并根据上述结果采取相应的行动。
如果有更好的方法来获得相同的结果,因为我认为这很混乱,请告诉我。
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 如何检查 ntpd 是否仍在运行和同步
- 如何同步运行在不同线程上的函数实例(在c++11中)
- 同步一个线程与两个正在运行的线程,c++, windows
- 提振.Asio:我可以取消在辅助线程中运行的同步操作吗?