标签: proc

如何从/proc获取每个硬盘设备的总磁盘读/写字节数

如何获得每个硬盘设备的总磁盘读/写字节数?

例如,如果我有 sda、sdb 和 sdc,是否有任何/proc我可以使用类似于/proc/net/dev网络的文件?

proc disk

2
推荐指数
1
解决办法
4432
查看次数

在 Linux 中,为什么需要 root 才能写入 /proc/sysrq-trigger?

警告:下一个组合键会导致您的计算机崩溃

好的,我知道这是一个管理工具,但我意识到任何用户都可以执行ALT+ SysRq+ C。这个链接解释了我在说什么。

但只有作为 root 我才能做类似的事情echo c > /proc/sysrq-trigger并让它真正使系统崩溃。

如果有人有物理访问权限,他们只需插入键盘即可使计算机(或服务器)崩溃,但他们更难在终端中获得 root 权限,对吗?为什么它可以作为非 root 用户从键盘工作,而只能作为来自控制台的 root 用户?

不是我要找的。它正在谈论键盘上Fn部分的问题。它甚至不允许你用sudo. 你必须先su root

linux root permissions proc magic-sysrq

2
推荐指数
1
解决办法
2895
查看次数

为什么在 /proc/pid/smaps 中列出了一个文件?

当我 cat /proc/1/smaps 文件时,我发现库通常有多达 4 个不同大小和不同 Rss/Pss 等的映射:

7f1a09696000-7f1a0982f000 r-xp 00000000 fe:04 1313975                    /usr/lib/libc-2.21.so
Size:               1636 kB
Rss:                 980 kB
Pss:                   9 kB
Shared_Clean:        980 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:          980 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd ex mr mw me 
7f1a0982f000-7f1a09a2e000 ---p 00199000 fe:04 1313975                    /usr/lib/libc-2.21.so
Size:               2044 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB …
Run Code Online (Sandbox Code Playgroud)

linux proc

2
推荐指数
1
解决办法
1104
查看次数

/proc/vmstat 中的 kswapd_low_wmark_hit_quickly 是什么

这个参数是什么意思呢?

# cat /proc/vmstat | grep low
kswapd_low_wmark_hit_quickly 2
Run Code Online (Sandbox Code Playgroud)

memory swap proc

2
推荐指数
1
解决办法
1653
查看次数

/proc/[PID]/stat 是否显示有关子进程的累积 CPU 统计信息

我不确定是否正确表达了这个问题,我已经尝试阅读man proc,但我无法找到正确的答案,也找不到验证它的简单方法。
我尝试获取一个 PID 的 CPU/RAM 消耗,但我不知道该程序将投射多少个子进程,我想获得 CPU 和 RAM 消耗的总量,而不仅仅是主进程。
我知道/proc/[PID]/io通过所有子进程确实累积的事实和经验,但我想知道并在可能的情况下提供证据是否同样适用于/proc/[PID]/stat.

proc

2
推荐指数
1
解决办法
3477
查看次数

Why does opening /proc/cpuinfo take 17 ms?

Running this

strace -ff -tt perl -e 'open(A,"<","/proc/cpuinfo");'
Run Code Online (Sandbox Code Playgroud)

gives this:

22:36:10.365187 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
22:36:10.382061 ioctl(3, TCGETS, 0x7fffb127ea50) = -1 ENOTTY (Inappropriate ioctl for device)
Run Code Online (Sandbox Code Playgroud)

/proc/cpuinfo is an in-memory file that does not require access to a slow disk. Why is it taking 17 ms to open?

I have tested 10 times on an idle system and the timing is very consistent.

$ uname -a
Linux hk 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 …
Run Code Online (Sandbox Code Playgroud)

proc

2
推荐指数
1
解决办法
181
查看次数

即时重定向输出 - 在 Linux 中看起来不可能,为什么?

我尝试过网络搜索,但没有通过即时搜索 Linux 重定向输出找到答案。据我了解,输出说 stdout 工作通过使用文件描述符 1:

$ ls -l /proc/pid/fd/1
lrwx------ 1 user1 user1 64 Sep 27 13:37 1 -> /dev/pts/1
Run Code Online (Sandbox Code Playgroud)

有一些与proc文件系统一起工作的 Unix 命令,例如ls在这里,tee可以写入文件,cat可以读取。为什么对于例如 Linux 没有实现用户可以通过ln -sin手动更改这些链接bash?(当我尝试时出现错误"No such file or directory")。实施起来会不会很困难?那个实用程序proc的程序员是如何决定应该使用什么实用程序的?

linux history proc

2
推荐指数
3
解决办法
1558
查看次数

zsh:检查 $PWD 是否在 tmpfs 挂载的文件系统上

zsh如果$PWD当前在已tmpfs安装的文件系统上,我想更改我的提示颜色。

比如说,/dev/shm是一个tmpfs文件系统。我可以确认:

$ grep /dev/shm /proc/mounts 
tmpfs /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=26307700k 0 0
Run Code Online (Sandbox Code Playgroud)

所以,当我在的时候/dev/shm,我可以这样做:

grep -q "^tmpfs $PWD tmpfs " /proc/mounts
Run Code Online (Sandbox Code Playgroud)

但是,如果我站在/dev/shm/foo、 或 等中/dev/shm/foo/bar,那将行不通。

如何检查是否$PWDtmpfs文件系统上?

zsh mount proc tmpfs

2
推荐指数
1
解决办法
182
查看次数

从 /proc/ 获取 Linux 中的可执行文件名称并检测它是否被截断

可执行文件名为 linux 可以通过多种方式读取。

  1. 通过读取 /proc/[pid]/comm,其中包含在达到 16 个字符或 TASK_COMM_LEN 后被截断的字符串。
  2. 通过读取包含与参数一起使用的命令行的 /proc/[pid]/cmdline 。

还有其他方式,比如读取/proc/[pid]/stat,或/proc/[pid]/status,但它们与1类似。

在第 1 点的情况下,proc(5)手册页说:

括号中的可执行文件的文件名。长度超过 TASK_COMM_LEN (16) 个字符(包括终止空字节)的字符串将被静默截断。无论可执行文件是否被换出,这都是可见的。


我有 3 个进程发现不匹配并突出显示它们(现在在我的系统上):

  1. PID 7610
  2. PID 38193
  3. PID 37030

考虑这些情况:

  1. PID 7610:
  • 的内容/proc/7610/commWeb Content
  • 但内容/proc/7610/cmdline/opt/firefox-developer-edition/firefox-bin-contentproc-childID17-isForBrowser-prefsLen7837-prefMapSize238232-parentBuildID20201215185920-appdir/opt/firefox-developer-edition/browser4080truetab
  1. PID 38193:
  • 的内容/proc/38193/commzyxwvutsrqponml
  • 但内容/proc/38193/cmdline/ramdisk/abcdefghijklmnopqrstuvwxyz./zyxwvutsrqponmlkjihgfedcba

有一\u0000ramdisk/abcdefghijklmnopqrstuvwxyz./zyxwvutsrqponmlkjihgfedcba我能看到编程,我将其替换\s

  1. PID 37030
  • 的内容/proc/37030/commkworker/3:1-xfs-reclaim/sda2
  • 内容/proc/37030/cmdline为空。

  • 在情况 1 中,我们看到 cmdline 和 comm 完全不同。
  • 在情况 2 …

linux process proc

2
推荐指数
1
解决办法
369
查看次数

cd into `/proc/xxx` 即使没有进程也能工作

今天我发现/proc文件夹有些奇怪。有一个 PID (7825),我无法通过 将其视为正在运行的进程ps,我在制作时也看不到进程 ID,ls /proc但我可以看到它,ls /proc/7825也可以 cd 进入它。这里的输出:

# ls /proc

...
dr-xr-xr-x   9 xxxxxxx         xxxxxxx             0 May 16 20:57 7812
dr-xr-xr-x   9 xxxxxxx         xxxxxxx             0 May 16 20:52 7820
dr-xr-xr-x   9 root            root                0 May 16 20:52 7836
dr-xr-xr-x   9 root            root                0 May 16 20:52 786
dr-xr-xr-x   9 xxxxxxx         xxxxxxx             0 May 16 20:57 7923
dr-xr-xr-x   9 xxxxxxx         xxxxxxx             0 May 16 20:52 7924
...
Run Code Online (Sandbox Code Playgroud)
ps aux | grep …
Run Code Online (Sandbox Code Playgroud)

proc

2
推荐指数
1
解决办法
31
查看次数

标签 统计

proc ×10

linux ×4

disk ×1

history ×1

magic-sysrq ×1

memory ×1

mount ×1

permissions ×1

process ×1

root ×1

swap ×1

tmpfs ×1

zsh ×1