动态监控程序状态
dynamically monitor program status
在Unix系统中,可以通过从/proc读取数据来动态监视系统。我希望在我的应用程序中实现这种监控,通过动态地将"当前状态"保存到一个文件中。但是,我不希望我的程序IO延迟,所以最好将文件设置为虚拟的,即不存储在磁盘中,而是实际存储在内存中。有办法指出这一点吗?谢谢你的提示!
为什么不使用共享内存和信号量?以"man shmget"为起点
作为另一种选择,您可以使应用程序成为套接字服务器。通过这种方式,您可以让它仅在被请求时才响应状态信息(甚至不需要用当前状态更新内存区域),并且您还可以从远程机器控制程序。如果状态本身的数据量不是很大,我认为这是最灵活的解决方案。
如果你也让你的应用程序响应一个HTTP请求(我不是说处理所有的HTTP协议的可能性,只是你想要支持的请求),那么你也可以避免编写客户端,如果你想写它,它可能更容易找到库和程序员能够做到这一点。
让它监听端口80,你可以检查你的程序在互联网上通过防火墙没有努力:-)(嗯…假设程序本身可以从internet访问,但即使如此,向系统管理员请求也是一件简单而常见的事情。
尝试FUSE。它对于编写虚拟文件系统特别有用。上面已经有很多文件系统了
我不知道您的确切要求,所以我只能猜测,但是linux下放入/dev/shm的每个文件都在ram中。但这并不意味着它不做I/O,只是I/O更快了。如果您不想通过文件描述符或类似的方式进行I/O操作,请按照其他人的建议使用共享内存段,但这对每个人来说都有点难以理解。让其他程序只是打开并读取文件,然后调用程序中的一些函数(这是由内核空间中的/proc完成的)是不可能的。也许文件系统套接字或fifo更适合您的需求(例如,当您有一个select/(e)轮询例程时)。当您完全控制系统时,tmpfs可能对您很有用。
- 如何从Clojure调用C++程序,以使程序保持打开状态?
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 选择"Y"继续后,我的程序一直处于关闭状态
- 程序终止,状态为 -1073741510 在 for 循环的中间,将输入分配给二维数组
- 用于unique_ptr的有状态自定义删除程序
- Windows编程:为什么我们要将lParam转换为CREATESTRUCT来获取应用程序状态
- 检查特定应用程序的窗口是否处于最小化状态
- 如何在Windows C MFC应用程序状态栏中禁用CAP NUM SCRL指示器
- 从基本C/CPP Linux应用程序中展示状态信息
- 程序在cmd中工作,在cygwin中立即以状态127退出,在emacs shell中没有输出
- 我的链接列表程序在代码块编译器(X0000000005)中以状态-1073741819终止
- 信号处理程序和本地状态
- 程序状态和调试器不一致
- c++/c#系统和程序资源监控-Windows
- Qt应用程序状态生命周期
- 良好的远程应用程序日志/监控软件
- 是否可以冻结和转储程序状态?
- MSVC++6.0:C1509“函数中的异常处理程序状态太多”
- 程序状态的任何变化是否构成可观察的行为?
- 保存程序状态(visualstudio2008)