如何检查ssh-agent是否已在bash中运行?

sh在Linux环境中有一个示例脚本,该脚本基本上ssh-agent针对当前shell运行,向其添加密钥并运行两个git命令:

#!/bin/bash

eval "$(ssh-agent -s)"

ssh-add /home/duvdevan/.ssh/id_rsa

git -C /var/www/duvdevan/ reset --hard origin/master

git -C /var/www/duvdevan/ pull origin master

脚本实际上可以正常工作,但是每次运行脚本时,我都会得到一个新进程,因此我认为这可能会成为性能问题,并且最终可能会导致无用的进程。

输出示例:

Agent pid 12109

Identity added: /home/duvdevan/.ssh/custom_rsa (rsa w/o comment)

此外,还有所有这些,是否有可能找到一个现有ssh-agent进程并将我的密钥添加到其中?

回答:

不,真的,如何检查ssh-agent是否已在bash中运行?

到目前为止,答案似乎并未回答原始问题…

这对我有用:

if ps -p $SSH_AGENT_PID > /dev/null

then

echo "ssh-agent is already running"

# Do something knowing the pid exists, i.e. the process with $PID is running

else

eval `ssh-agent -s`

fi

以上是 如何检查ssh-agent是否已在bash中运行? 的全部内容, 来源链接: utcz.com/qa/422040.html

回到顶部