问题标签 [procfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何仅使用 /proc 找到套接字的所属 PID
我如何(或 netstat-p 或 ss -p)从 /proc/net/tcp 输出中找到拥有的 PID?
给定以下输出:
我需要通过 /proc/$PID 递归搜索 inode 吗?
我尝试在 /proc/ 上运行 find 以匹配上面的 inode,但没有任何运气。
有人能解释一下 inode 的字段是什么意思吗?
谢谢!
linux - /proc 中可能的内部套接字状态列表
我想知道中st
列的可能值/proc/net/tcp
。我认为该st
列等同于来自netstat(8)
or的 STATE 列ss(8)
。
我设法识别了三个代码:
上图显示:
- 在线 sl 0:tcp/2208 上的监听端口。
st = 0A = LISTEN
- 在第 sl 6 行:在 tcp/22 上建立的会话。
st = 01 = ESTABLISHED
- 在第 sl 7 行:ssh 注销后处于 TIME_WAIT 状态的套接字。没有索引节点。
st = 06 = TIME_WAIT
任何人都可以扩展此列表吗?联机帮助页在proc(5)
主题上非常简洁,说明:
在相关说明中,上述 /proc/net/tcp 输出显示了一些侦听进程(2208、62、111 等)。但是,尽管显示了已建立和 time_wait 状态,但我在 tcp/22 上看不到正在侦听的 tcp 连接。是的,我可以看到它们,/proc/net/tcp6
但它们也不应该出现在/proc/net/tcp
里面吗?Netstat 输出显示它与仅绑定到 ipv4 的应用程序不同。例如
非常感谢,-安德鲁
python - 避免进程列表中的相关进程
如何生成一个进程列表,其中不包括当前进程、它的 shell 和进程组中的任何相关进程,以及SSHD
为处理会话而生成的进程?
ps(1)
实际上有一个选项可以做到这一点吗?
是否有一些谓词可以应用于每个流程以将其从我生成的任何列表中过滤出来?
linux - 获取 Linux 进程资源使用情况(cpu、磁盘、网络)
我想每秒使用 /proc 来查找特定进程的资源使用情况。资源包括 cputime、磁盘使用和网络使用。我查看了 /proc/pid/stat ,但不确定是否获得了所需的详细信息。我想要所有 3 种资源使用情况,并且我想每秒监控它们。
linux - 从Linux内核中的文件读取和写入
我正在为内核 3.0 上的 VFS FAT 实现编写补丁我想将 posix 属性添加到在 linux 中创建的 FAT 文件中。为此,我必须保存一个文件,其中包含已安装驱动器上的所有相关信息。
我知道从内核空间读取和写入文件通常是不应该做的,我正在寻找另一种读取/写入数据的方法。
我在网上看到建议使用 /proc 或创建一个用户空间守护进程来为我执行 IO 的文章。我想知道是否有人看到或知道我在哪里可以看到这样的东西的实现,因为我没有在网上找到任何例子。我不是在寻找对 proc 的读/写示例,我想查看此问题的完整解决方案。
python - 从 /proc/stat 计算 user、nice、sys、idle、iowait、irq 和 sirq
/proc/stat 显示 user、nice、sys、idle、iowait、irq 和 sirq 的刻度,如下所示:
cpu 6214713 286 1216407 121074379 260283 253506 197368 0 0 0
如何使用这些值计算用户、nice 等的个人利用率(以 % 为单位)?就像“top”或“vmstat”中显示的值一样。
linux - 访问 /proc
我目前正在开发一个需要大量系统和进程信息的应用程序,其中一些只能通过 /proc 获得,并且我有一些关于访问结构的一般性问题。
该应用程序将在 Linux(内核 >= 2.6)上运行,而不是在任何其他 Unix 风格的操作系统上运行。它应该可以访问 /proc 中的任何数据,我不能说现在需要什么,因为规范还不清楚,但是整个 /proc 目录与应用程序相关。
首先:是否有一个很好的文档来涵盖从内核版本到内核版本添加/删除的所有功能?我特别好奇的一件事是各个文件的格式。我可以认为这是理所当然的吗?它在内核版本之间会发生变化吗?
连接基于内核的解析过程根本不是问题,只是我找不到任何关于版本之间变化的好文档,这可以帮助我提前捕获解析错误。
另外:是否有可以通过内核选项激活/停用的功能的明确列表(当然 /proc-feature 本身除外)?I'm looking for a list of files / directories that only exist with the appropriate options being set in the kernel.
作为我正在考虑的一个例子,这是一个指向 proc 手册页 (http://linux.die.net/man/5/proc) 的链接,其中包含很多很好的信息,例如,一些选项包括最早的它们可用的内核版本,其中一些包括是否需要加载模块。这并没有描述所有信息的输出格式,如果我想解析它(例如,如果它在所有内核版本中都是一致的或在某些时候发生变化),这是我需要的。
我想知道的第二件事是如果被查询的进程在被查询时死亡会发生什么。我的时间间隔是多少?例如,如果我要获取读取所有结构的进程列表,并一个接一个地解析它们,如果我的进程 x 在我读取它之前就死了会发生什么?即使我检查该目录是否存在,它仍然可能在稍后的应用程序调用中消失。
最后但并非最不重要的一点:有没有没有安装 proc 的主要发行版?
据我了解,很多常用工具都是基于 /proc 接口的lsmod
or free
,所以我猜我可以期望 /proc 几乎总是存在。
linux - Linux procfs inode 编号在进程运行时更改
我正在为 Linux 开发安全软件 (SW)。我们的 SW 做的一件事是,当某个进程启动时,SW stat()s 进程的 /proc/ 条目并记住该条目的 inode 号。当稍后 SW 需要确定进程仍在运行(并且尚未重新启动)时,它会再次查找进程的 inode 并与记住的 inode 进行比较。一切都很好,直到最近我开始收到针对特定应用程序的错误警报 - Opera 浏览器 11.10beta。基本上,当 Opera 运行时,它的 /proc/PID 条目的 inode 编号似乎发生了变化,我们认为这是不可能的。这是 SW 安全概念工作中的一个相当大的扳手 - 非常依赖于这样一个事实,即当一个进程正在运行时,它的 /proc/ 条目的 inode 保持不变。
有人可以告知为什么会出现这种行为。谢谢。
linux - 如何在 Linux 中从 procfs 中获取 jobid
我想从 Linux 中的 procfs 获取 jobid。我在 /proc//status 文件中只看到 Pid 、 Ppid 。但我也需要jobid。请让我知道是否有办法获取信息。
谢谢 !
linux - Linux 应用程序在没有套接字的情况下发送 UDP
同胞编码员。我正在使用 libnetfilter_queue 模块和 iptables 规则 ipatbles -I OUTPUT 1 -p all -j NFQUEUE --queue-num 11220 监控我的传出流量
一个名为 Jitsi(在 Java 上运行)的应用程序表现出一种以前从未遇到过的奇怪行为:我处理 NFQUEUE 数据包的监控程序清楚地表明正在发送 UDP 数据包,但是当我查看时:“/ proc/net/udp”和“/proc/net/udp6”它们是空的,而且“/proc/net/protocols”有一个用于UDP的“sockets”列,它是0。但是UDP数据包不断被发送。然后大约一分钟后,“/proc/net/udp”和“/proc/net/protocols”开始显示有关UDP数据包的正确信息。又过了一会儿,在发送 UDP 数据包时,它们中没有任何信息。
我唯一的结论是,应用程序有可能在不创建套接字的情况下发送 UDP 数据包和/或可能创建一个套接字,然后删除它(这样内核认为没有)并且仍然使用一些晦涩的方法来发送外面的包。
请问有人对这种行为有想法吗?