- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 Linux 操作系统编程领域的新手。我正在从事一个控制英特尔 CPU 的项目(涡轮增压、超线程、最小和最大缩放频率以解决其他用户的问题)。在调查 /proc/stat
的 CPU 利用率时,我偶然发现了这个:
$ ll /proc/thread-self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/thread-self -> 9389/task/9389/
$ ll /proc/self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/self -> 29420/
$ ll /proc/self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/self -> 29636/
$ ll /proc/thread-self
lrwxrwxrwx 1 root root 0 Aug 22 04:26 /proc/thread-self -> 30021/task/30021/
thread-self
和self
每次用ll
列出符号链接(symbolic link)时都会不断变化。不过,日期和时间仍保留为上次启动时间。
我做了一点挖掘,发现了这个 email chain in 2014 :
This patchset implements
/proc/thread-self
a magic symlink that solves a couple of problems.
....邮件的下方说:
proc: Have net show up under /proc/<tgid>/task/<tid>
proc: Implement /proc/thread-self to point at the directory of the current thread
proc: Point /proc/net at /proc/thread-self/net instead of /proc/self/net
proc: Point /proc/mounts at /proc/thread-self/mounts instead of /proc/self/mounts
符号链接(symbolic link)如何工作?或者我们如何使用它们对 Linux 正在做什么进行有意义的分析/显示?或者它们只是毫无意义而被视为“绒毛”而被忽略?
最佳答案
/proc/self
是当前进程的符号链接(symbolic link),ls
在你的例子中处理。由于每个 ll
产生一个新的 ls
使用不同的 PID 进行处理,符号链接(symbolic link)每次都会更改。这是一个神奇的符号链接(symbolic link),它会根据访问它的进程而变化。不同的进程会看到不同的目的地。
/proc/thread-self
除了它指向当前线程而不是当前进程之外,其他都是一样的。在您显示的输出中,ls
正在其主(可能是唯一)线程上查找符号链接(symbolic link),因此线程 ID 与进程 ID 匹配。
如果您检查 mount
的输出或 cat /proc/mounts
你会看到这个“魔法”是如何实现的。 /proc
通常作为虚拟文件系统安装。
$ mount | grep proc
proc on /proc type proc (rw)
任何时候您访问 /proc
下的条目 proc
filesystem处理查找。与 ext4
等标准文件系统相比, xfs
, 或 tmpfs
,磁盘上没有底层文件集。相反,有一个内核级驱动程序可以处理所有文件系统调用。当您访问 /proc/self
内核驱动程序检查发出请求的进程并动态创建指向该进程 PID 的符号链接(symbolic link)。
有什么用?嗯,/proc/<PID>
下有很多资料.例如,您可以查看 /proc/<PID>/fd/*
查看进程打开了哪些文件描述符。 /proc/<PID>/cmdline
给出 argv
的内容. /proc/<PID>/status
有一堆信息,包括 uid、gid 和内存使用情况。例如,您可以插入对 ls -l /proc/self/fd/
的调用调试文件描述符泄漏时。
关于linux -/proc/thread-self 的用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977002/
XML可以应用于 WEB 开发的许多方面,常用于简化数据的存储和共享 XML 把数据从 HTML 分离 现在的HTML 文档一般都是显示动态数据,每当数据改变时将花费大量的时间来编辑 HTML
在类(class)(方案)中,我们最近学习了允许函数接受任意数量参数的语法,例如; (define len (lambda args (length args))) >(len 1 2 3
在 redis-cli 中执行 info 命令时,会列出与该服务器相关的所有信息。 “evicted_keys”的目的是什么? 最佳答案 Redis 可以配置为根据需要自动清除键。如果这样配置,red
golang 空结构体 struct{} 可以用来节省内存 ? 1
有人可以解释一下资源文件夹中的 Info.plist 是什么吗?我如何在我的应用程序中使用它?提前致谢。 最佳答案 您可以在Info.plist文件中为所有类型的设备指定不同的常规资源和应用程序配置,
我需要减小可执行文件的大小,并且经常在我的可执行文件中将某些“不必要的” uses占用一定的大小。 例如: Unit1连接到Unit2,但是两个单元的导入为“ System.SysUtils”。 然后
我是 OOP 的新手。虽然我了解多态是什么,但我无法真正使用它。我可以有不同名称的函数。为什么我应该尝试在我的应用程序中实现多态性。 最佳答案 在严格类型化的语言中,多态性对于拥有不同类型对象的列表/
Possible Duplicate: What is the difference between a delegate and events? Possible Duplicate: Differ
这个问题在这里已经有了答案: Custom index.html javadoc page? (2 个答案) 关闭 7 年前。 我使用的是eclipse。一般情况下我们可以使用javadoc.exe
你能解释一下吗ValidateAntiForgeryToken目的并向我展示有关 MVC 4 中的 ValidateAntiForgeryToken 的示例? 我找不到任何解释此属性的示例? 最佳答案
我正在学习 RxSwift 并试图了解 Observable 和 PublishSubject aka Sequence 之间的主要区别。 据我了解,Sequences/PublishesSubjec
有时有人说,在使用 Azure 表时,实际上存在第三个关键分区数据 - 表名称本身。 我在执行分段查询时注意到 TableContinuationToken 有一个 NextTableName 属性。
在Apple提供的aurioTouch项目中,听说在performRender()函数下的AudioController文件中的AudioBufferList ioData携带了mic到音频播放器的音
MSDN 文档没有详细解释它的用途。 由于它是可选的,我几乎假设它类似于某种元数据。 我现在如何看待它,我想用它来为特定用户指定缓存,例如: new CacheItem(key: "keyName",
我正在学习 browserify,我正在尝试用它做两件基本的事情: 转换(通过 shim)非 CommonJS 模块以实现易用性和依赖跟踪 捆绑项目特定的库 我找到了一个工作流程,说明如何使用 Gul
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
在 codeLabs 教程(Android - Kotlin - Room with a View)中,他们使用“viewModelScope.launch(Dispatchers.IO)”来调用插入
我通过按 CTRL + C 访问 eix 1.8.2 的 Break 菜单。它看起来像这样: BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
请耐心等待,因为我没有太多地使用压缩算法,所以这对你们中的一些人来说可能是显而易见的。当某些流媒体视频开始滞后时,我总是注意到这一点。当我看到这个问题时我才意识到我很好奇: Twitter image
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
我是一名优秀的程序员,十分优秀!