gpt4 book ai didi

linux -/proc/self 和/proc/$$ 之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:34 33 4
gpt4 key购买 nike

我曾经认为 /proc/self/proc/$$ 在 bash 终端中是一样的,但现在我发现它们是不同的。

我知道$$是当前进程的pid,/proc/self是当前运行的进程,应该是bash终端。为什么它们不同?

root@VM-73-203-debian:~# echo $$
24415
root@VM-73-203-debian:~# ls -l /proc/self
lrwxrwxrwx 1 root root 0 Nov 22 2018 /proc/self -> 24465
root@VM-73-203-debian:~# ls -l /proc/$$
total 0
dr-xr-xr-x 2 root root 0 May 29 16:23 attr
...

最佳答案

$$ 是一个特殊的 bash 变量,它被扩展为 shell 的 pid。

/proc/self 是一个真正的符号链接(symbolic link),指向正在进行调用的进程的 /proc/ 子目录。

当您执行 ls/proc/$$ 时,shell 会将其扩展为 ls/proc/pid-of-bash 这就是您所看到的内容 shell 进程。

但是当您执行 ls/proc/self 时,您会看到短暂的 ls 进程的内容。

$$不限于此用法,可以写echo $$查看bash pid;你可以用它来自杀等等。

关于linux -/proc/self 和/proc/$$ 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56356113/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com