如何以编程方式确定用户是否已将其Mac设置为“自动设置日期和时间”?

时间:2012-02-02 12:57:49

标签: macos cocoa datetime plist

我的软件依赖于与外部服务器同步。我想以编程方式检查用户的计算机(Mac OS X 10.5+)是否自动设置日期和时间,根据日期和时间中的复选框。时间系统首选项面板。

如果未选中此设置,我的软件将提醒用户我的软件可能出现问题。

我想有一种方法可以使用Cocoa库或我的软件可以打开和阅读的plist文件。

1 个答案:

答案 0 :(得分:1)

我刚刚测试过。如果选中该复选框,则ntpd运行。否则它不会运行。因此,只需检查ntpd是否正在运行。

您可以直接通过外壳ps -ef并在输出中检查/usr/sbin/ntpd进程来检查这一点,或者您可以使用任意数量的其他方法来检测它的存在:

  • 运行ntpq -c lpeers并检查成功返回状态
  • 使用netstat -an或等效内容查看是否正在侦听UDP端口123。
  • 自己发送UDP数据包到127.0.0.1端口123,看看是否成功。