Questions tagged «proc»

procfs(或proc文件系统)是类UNIX操作系统中的特殊文件系统,以类似于文件的分层结构形式提供有关进程的信息和其他系统信息

2
/ proc / <pid> / exe符号链接与普通符号链接有何不同?
如果我启动一个进程,然后删除它的二进制文件,我仍然可以从中恢复它/proc/&lt;pid&gt;/exe: $ cp `which sleep` . $ ./sleep 10m &amp; [1] 13728 $ rm sleep $ readlink /proc/13728/exe /tmp/sleep (deleted) $ cp /proc/13728/exe ./sleep-copy $ diff sleep-copy `which sleep` &amp;&amp; echo not different not different $ stat /proc/13728/exe File: ‘/proc/13728/exe’ -&gt; ‘/tmp/sleep (deleted)’ Size: 0 Blocks: 0 IO Block: 1024 …
23 linux  symlink  proc 

3
为什么将proc称为文件系统?
该proc文件系统允许内核传达有关在Linux系统上运行的每个进程的信息。 为什么proc称为文件系统?它不是真正的文件系统,例如ext4。它只是包含有关正在运行的进程信息的文件的集合。
20 filesystems  proc 

2
文件描述符链接的可移植性
我一直想知道这一点,但从来没有花时间找出来,所以我现在就这样做-是使用便携式怎么这里显示的任一/proc/$$/fd/$N或/dev/fd/$N?我了解POSIX担保 /dev/null, /dev/tty, and /dev/console (尽管我是在阅读有关此答案的评论后的第二天才发现的),但是其他这些担保呢? 据我所知,它们很常见,但是我不能指望它们在哪些系统中找到?为什么不?找到一个比另一个更有可能吗?他们会总是表现出类似的属性吗? 我倾向于以各种方式广泛地使用这些设备,并且我想知道是否有机会尝试一下。 另外,上述问题应该被理解为仅是我想,我想知道,但是,因为我显然要问的第一个地方,我可能不知道最好在这方面,他们不应该被认为是严格要求答案。请告诉我,如果可以的话。

4
为什么某些内置的shell`read`无法从`/ proc`文件中读取整行?
在某些类似Bourne的shell中,read内置/proc命令无法从file in读取整行(以下命令应在in中运行zsh,$=shell并$shell用其他shell 替换): $ for shell in bash dash ksh mksh yash zsh schily-sh heirloom-sh "busybox sh"; do printf '[%s]\n' "$shell" $=shell -c 'IFS= read x &lt;/proc/sys/fs/file-max; echo "$x"' done [bash] 602160 [dash] 6 [ksh] 602160 [mksh] 6 [yash] 6 [zsh] 6 [schily-sh] 602160 [heirloom-sh] 602160 [busybox sh] 6 read标准要求标准输入需要是一个文本文件,该要求是否引起各种行为? …
19 linux  shell  proc  read 

2
/ proc / self如何在Linux中实现?
我正在修改/procLinux中的文件系统,然后遇到/proc/self,它是指向当前进程的进程目录的符号链接。我想知道它是如何实现的。一种解决方案是更改每个上下文切换上的符号链接,但这显然非常昂贵,因为它涉及磁盘访问。
19 process  proc 


5
找出Linux中/ dev / root代表什么设备?
在linux上,有一个/dev/root设备节点。这将是与另一个设备节点相同的块设备,例如/dev/sdaX。/dev/root在这种情况下,如何解析为“真实”设备节点,以便向用户显示明智的设备名称? 例如,我在解析时可能会遇到这种情况/proc/mounts。 我正在寻找可以在shell / python脚本而不是C上运行的解决方案。
17 linux  proc  devices 

2
如何检查给定的PID是否正在运行?
我正在编写一个Perl脚本,该脚本分析日志文件以收集PID,然后检查该PID是否正在运行。我正在尝试最好的检查方法。显然,我可以这样做: system("ps $pid &gt; /dev/null") &amp;&amp; print "Not running\n"; 但是,如果可能的话,我宁愿避免系统调用。因此,我认为我可以使用/proc文件系统(可移植性不是问题,它将始终在Linux系统上运行)。例如: if(! -d "/proc/$pid"){ print "Not running\n"; } 这样安全吗?我是否可以总是假设如果没有/proc/$pid/目录,则关联的PID未运行?我希望如此,因为AFAIK ps本身/proc还是从信息中获取信息,但是由于这是针对生产代码的,因此我想确定一下。 因此,是否可能存在正在运行的进程没有/proc/PID目录或/proc/PID存在目录且进程未运行的情况?有没有理由更喜欢解析而ps不是检查目录是否存在?

1
是否可以从/ proc获取进程组ID?
在“ /programming/13038143/how-to-get-pids-in-one-process-group-in-linux-os ”中,我看到了所有提及的答案,ps而没有提及/proc。 “ ps”似乎不是很可移植(Android和Busybox版本期望使用不同的参数),我希望能够使用简单且可移植的工具列出带有pgid的pid。 在/proc/.../status中,我看到了Tgid:(线程组ID),Gid:(用于安全性而不是用于将进程分组在一起的组ID),但是没有PGid:... 还有什么(不使用ps)从pid获取pgid的方法?


5
阅读另一个进程的堆栈?
我正在尝试读取子进程的堆栈,但是没有运气。我知道可以使用ptrace,但是ptrace的界面仅允许您一次只读取一个单词,而我正在尝试扫描堆栈的较大部分。 我也试着阅读/proc/$pid/mem从堆栈的boundries从提取/proc/$pid/maps使用ptrace的附加到它(如建议的文件后先在这里),但(以root运行时,即使)读不停地进行故障虽然尝试时相同的代码成功从过程的不同部分(例如堆)读取。 我究竟做错了什么?还有其他选择吗?
16 linux  kernel  memory  proc 


1
iproute软件包中的“ ss”命令;为什么要查询平板表中的timewait套接字?
如果这不是解决此问题的最佳论坛,请原谅我,但它似乎与内核有关,而不是与编程本身有关。 我正在编写一个脚本,用于查询系统的开放端口,以便我们可以绘制图形并监视统计信息。为此,我使用了iproute软件包中的“ ss”命令。如果执行ss -s|grep estab,将收到类似以下的输出: TCP: 296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0 我的问题与timewait变量有关,该变量显示了处于TIME_WAIT状态的计算出的套接字。当我试图找出在斜杠后引用的数字时,它成为了寻找源代码的狂热冒险,最终使我找到了以下代码段: printf("TCP: %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n", s.tcp_total + slabstat.tcp_syns + s.tcp_tws, sn.tcp_estab, s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws), s.tcp_orphans, slabstat.tcp_syns, s.tcp_tws, slabstat.tcp_tws, slabstat.tcp_ports ); 我必须承认,我对“ …

4
如何学习使用/ proc和/ sys可以做什么
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 2年前关闭。 我想了解有关/proc和/sys虚拟文件系统的高级用法的更多信息,但是我不知道从哪里开始。谁能建议任何好的资源以供学习?另外,由于我认为sys具有常规的补充功能,因此在发布新内核时使我的知识保持最新的最佳方法是什么。
15 linux  kernel  proc  sysfs 

2
确定特定进程是32位还是64位
给定2.6.x或更高版本的Linux内核以及既可以运行ELF32也可以运行ELF64二进制文件的现有用户区(即,过去如何知道我的CPU在Linux下支持64位操作系统?)如何确定给定进程(通过PID)是在32位还是64位模式下运行? 天真的解决方案是运行: file -L /proc/pid/exe | grep -o 'ELF ..-bit [LM]SB' 但是,这些信息是否在/proc不依赖的情况下直接公开了libmagic?
14 linux  64bit  proc  elf 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.