当我这样做时ps -e --forest
,我得到以下输出:
然而,当我这样做
chrome
,which chrome
, 或者type chrome
,
它们没有按预期工作……
我发现其中大多数的行为有些奇怪:
1.
Command 'chrome' not found, did you mean:
command 'chroma' from deb golang-chroma (0.10.0-5ubuntu0.24.04.1)
command 'chroma' from deb chroma (1.19-1ubuntu1)
Try: sudo apt install <deb name>
空行
bash: type: chrome: not found
我有Version 132.0.6834.83 (Official Build) (64-bit)
。
附录:这就是让我感到困惑的地方……当我用 htop 显示启动这些进程的命令时,我得到了
看来,这并非事实……
最终,您的问题是“为什么运行命令 X (
google-chrome
)会导致名为 Y (chrome
) 的进程?”。这是因为,您看到进程名称的内容
/proc/$PID/exe
是运行代码的二进制文件。但该二进制文件可能由另一个二进制文件启动,而后者又由另一个二进制文件启动,等等……在您的情况下,您有
google-chrome
一个符号链接,它(通过多个符号链接层)运行一个也称为的脚本google-chrome
,然后该脚本又运行chrome
二进制文件。实际上,您可以在进程之间看到
google-chrome
二进制文件,但它只出现几毫秒的时间,因此您不太可能捕获它。您可以运行
bpftrace
命令来查看正在启动哪些进程以及使用哪些参数: