我正在运行嵌入式Linux。如果我的NTP守护程序已同步,则需要从不是root用户运行的应用程序中知道。
我尝试如下运行Busybox随附的ntpd:
ntpd -n -p pool.ntp.org -q
但是问题是,即使我将ntpd添加到/etc/busybox.conf
[SUID]
然后,我也尝试了chronyd和chronyc。类似的问题,chronyd由root运行。出于安全原因,我还禁用了Internet命令套接字(cmdport 0),然后我以非root用户身份运行chronyc,如下所示:
chronyc waitsync
收到以下错误消息:
506 Cannot talk to daemon
检查了ntpstat代码,但似乎与chronyc或ntpd交互。
我想知道此任务是否有可用的解决方案?或者,如果没有,则建议如何完成。也许可以通过C代码以某种方式完成?但是该解决方案应满足以下关键要求:
1) work with no root privileges
2) be compact and easy implemented on Embedded Linux system
3) robust
脚本,工具或C代码应该给我两个输出:
synchronized -> wthe hen clock has already been synchronized with NTP server
not synchronized -> otherwise
答案 0 :(得分:0)
如何放置
ntpd -n -p pool.ntp.org -q
进入init例程(您需要一次root访问)。
(本来应该在评论中注明,但没有足够的积分。)