支持资源

支持资源

我输入ps -p 3454 -o command并得到的输出是:

COMMAND
/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh

这里是什么-D -a意思?

如果我使用ps -p 3454 -o comm,我不会得到 /run/user.... 输出,只是命令ssh-agent

这里的 /run/user.... 是什么意思?也是comm=一样吗comm

答案1

根据ps(1) — Linux 手册页ps根据我的测试,以下是一些有助于澄清此输出的详细信息。这将帮助您更好地了解正在运行的命令发生了什么。

你的全部命令是这样的ps -p 3454 -o command

  • 这部分ps -p 3454获取 pid 的活动运行进程详细信息3454
  • 这部分-o command输出与 pid 绑定的正在运行的进程的实际命令和参数

当你运行这个来显示 pid3453详细信息时,这恰好是ssh 代理过程。使用-o command输出的原始命令和参数,ssh-agent这些参数是在命令拍摄快照-D -a时使用的参数。ps

实际上,使用 just-o comm只会输出该 pid 的执行文件名。这实际上只是意味着-o comm-o command显示您正在查询的进程的不同详细信息。


支持资源

  • ps(1) — Linux 手册页

    • comm

      • 显示命令名称(仅显示可执行文件名称)。不会显示对命令名称的修改。此列中的输出可能包含空格。
    • command

      • 将命令及其所有参数显示为字符串。可能会显示对参数的修改。此列中的输出可能包含空格。

答案2

“-D -a”与 PS 无关。PS 列出了进程 - 正在运行的进程是“/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh” - 即 -D -a 是传递给 ssh-agent 的参数。

对于 ssh-agent 来说:-D 表示在前台运行,-a 表示“绑定到所有地址”。

在我的 Ubuntu 系统上,我看到了 2 个“ssh-agent”进程 - 一个在后台,可能与我正在执行的命令行操作有关,而第二个是桌面会话的客户端,因此很可能在前台,以便与桌面交互。(实际上,当我使用 -D -a 选项终止与该进程关联的进程并从桌面执行 ssh 会话时,它会要求我再次进行身份验证,然后重新启动该进程)

相关内容