Mam próbkę sh
skryptu na moim środowisku Linux, która w zasadzie prowadzony jest ssh-agent
dla bieżącej powłoki, dodaje klucz do niego i prowadzi dwie git polecenia:Jak sprawdzić, czy ssh-agent jest już uruchomiony w bashu?
#!/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
Script faktycznie działa dobrze, ale za każdym razem Uruchom to Otrzymuję nowy proces, więc myślę, że może to być problem z wydajnością i może zakończyć się bezużyteczne procesy tam.
Przykładem wyjścia:
Agent pid 12109
Identity added: /home/duvdevan/.ssh/custom_rsa (rsa w/o comment)
Ponadto, wraz z tym wszystkim, jest to możliwe, aby znaleźć istniejący ssh-agent
proces i dodać moje klucze do niego?
Wypróbuj '$ SSH_AGENT_PID'. – choroba
Jeśli chcesz zabić proces po jego utworzeniu, możesz zapisać jego PID w zmiennej i nazwać ją tak: kill -9 $ PID_SSH_AGENT' – alok
Uważam, że stworzenie skryptu odpowiedzialnego za uruchomienie agenta jest niewłaściwe. Załóżmy, że agent * działa * i wymaga od każdego użytkownika upewnienia się, że ma już agenta (zwykle uruchamianego przez początkową powłokę logowania). – chepner