首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UNIX/Linux惯用的报告守护进程状态的方式

问UNIX/Linux惯用的报告守护进程状态的方式
EN

Stack Overflow用户
提问于 2016-07-11 15:06:52
回答 2查看 39关注 0票数 0

我的守护进程通过TCP和UDP发送和接收数据。逻辑连接通常是一组这样的流。

我将制作一个网页来报告这些连接的类型以及已传输的数据量。不能仅仅通过调用netstat来做到这一点,因为很难辨别哪个连接是哪个连接,特别是对于可以改变端口的UDP。因此,守护进程应该累积统计信息。

我不想把web服务器放在守护进程中。我不想不断地将统计数据写入文件中。

这个好主意用在/proc内核文件系统中,从该文件系统读取文件会调用应用程序中的函数。它按需工作。如果能有这样的东西就好了。

有没有一些现有的UNIX/Linux守护进程有这样的要求的例子?他们干些什么?

EN

回答 2

Stack Overflow用户

发布于 2016-07-11 15:27:29

我相信/proc文件通常只被定义为读取和设置内核参数,而不是守护进程的参数。

Docker uses a unix socket (usually on /var/run/docker.sock),它接受HTTP请求并实现REST API。这对您的报表应用程序很方便,但对您的守护进程来说显然是一种开销。

您还可以为您的守护进程创建一个命名管道,例如,在/var/run/myd.info中,您可以定期或按需将信息以文本形式发送到该管道。

已经有一个implementation of a named pipe writer在SIGPIPE上没有中断(当另一端停止读取管道时的信号,即当您发送EOF时)。

票数 0
EN

Stack Overflow用户

发布于 2016-07-12 20:49:12

您可以创建自己的/proc文件并向其中“写入”数据。这是一种常见的方式,我记得SCST允许您使用它们自己的/proc/ branch读取甚至控制守护程序资源。

看看这里:http://www.crashcourse.ca/introduction-linux-kernel-programming/lesson-11-adding-proc-files-your-modules-part-1

但是你需要用你的守护进程创建一个内核模块来使用这个特性。

也许sqlite数据库和你的守护进程上的一些简单的API是一个选择?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38301001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档