我正在编写一个作为守护程序运行的跨平台Go应用程序。它基本上侦听文件系统上的更改,并将更改复制到服务器或从服务器下载更改。这个想法是,它永远不应该降低计算机的速度,在计算机空闲之前排队任务。
为此,我想监视CPU,RAM和网络使用情况,但要监视网络使用情况(如果可能)。我目前的目标是Windows 7 +,Mac OS 10+和Linux 3+。
我主要是Linux程序员,所以我对Windows / BSD API不熟悉,但是我已经找到了一些有关BSD的好信息,因此我想我可以弄清楚。我在跟踪Windows系统调用时遇到了麻烦(我不知道获取Windows手册页的方法...)。我设法找到了这些资源(适用于Windows):
http://msdn.microsoft.com/zh-CN/library/ms724400%28VS.85%29.aspx
http://www.philosophicalgeek.com/2009/01/03/determine-cpu-usage-of-current-process-c-and-c/
http://msdn.microsoft.com/zh-CN/library/windows/desktop/aa373083%28v=vs.85%29.aspx
我宁愿使用syscall而不是掏空/包装C ++ API。显然,我会对已经执行此操作的任何其他Go库感兴趣。
最终,我正在寻找这样的东西:http : //nodejs.org/api/os.html
我几乎在寻找syscall和如何使用它们的示例。
如果我朝错误的方向前进,请告诉我。我不赞成轮询内核以获取系统信息,但是在我看来,这是获取该信息的最可靠方法。我希望以特权用户身份运行该应用程序。
相关分类