就像我在标题中所说的,我不小心运行了这个:
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
它实际上不会执行任何操作。