错误地将 nano 放在 ps -e | 的开头grep ssh-代理

错误地将 nano 放在 ps -e | 的开头grep ssh-代理

就像我在标题中所说的,我不小心运行了这个:

nano ps -e | grep ssh-agent

现在,当我正确运行时,ps -e | grep ssh-agent我会看到以下内容:

# ps -e | grep ssh-agent
 1613 ??         0:00.05 /usr/bin/ssh-agent -l
27195 ttys000    0:00.00 grep ssh-agent

我必须终止会话才能摆脱让我陷入的命令状态。事后看来,我想我可以再次运行它。

这是我尝试过的:

# ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;

然后我得到:

SSH_AGENT_PID not set, cannot kill agent

然后我尝试了:

ps -ef | grep ssh-agent

现在我有这个:

# ps -ef | grep ssh-agent
  501  1613     1   0 Sun07PM ??         0:00.06 /usr/bin/ssh-agent -l
  501 27629 26750   0 12:06PM ttys000    0:00.01 grep ssh-agent 

有人可以帮我纠正这个问题吗?我不想进一步搞乱它,因为这不是我熟悉的领域。

答案1

macOS 上的 nano 版本不喜欢它的标准输出是管道。嗯,没什么大不了的。杀掉它吧。打开另一个终端选项卡并运行

pgrep nano

如果输出是单个数字,则只有这一个纳米进程,因此杀死它。

pkill nano

如果pgrep显示多个进程,您需要确定要杀死哪一个。跑步

ps -eww |grep nano

查找包含 with 的行nano ps -e。该行的第一个数字是进程 ID。复制粘贴该数字并将其传递给kill命令。例如,如果您看到

27629 ttys000    0:00.00 nano ps -e

然后运行

kill 27629

当管道的左侧终止时,grep 进程将自动终止。

您本可以完成这一切并拿回您的终端。你现在仍然可以这样做,它会杀死一些无用的进程(但当然它不会让你的终端恢复)。

运行 ssh-agent 进程是正常的。它与您的 macOS 会话一起使用。您不应该ssh-agent -k在 macOS 上运行,并且系统不会进行设置,SSH_AGENT_PID因此如果您运行ssh-agent -k它实际上不会执行任何操作。

相关内容