Uzak sunucularımdaki .bash_profile dosyamda aşağıdakiler var:
if [ -z "${STY}" -a -t 0 -a X${USER} = Xarcege ]; then
reattach() {
if [ -n "${SSH_AUTH_SOCK}" ]; then
ln -snf "${SSH_AUTH_SOCK}" "${HOME}/.ssh/agent-script"
SSH_AUTH_SOCK="${HOME}/.ssh/agent-script" export SSH_AUTH_SOCK
fi
exec screen -A -D -RR ${1:+"$@"}
}
screen -wipe
echo 'starting screen... (type Ctrl-C to abort)'
sleep 5 && reattach
fi
Bu iki şey yapar: ilk olarak, kabuğu değiştirmek ve ssh-agent bağlantısını ilerletmek için bir kabuk işlevi ayarlar, ikinci olarak birkaç saniye duraklattıktan sonra işlevi çağırır (ekranın başlamasını istemiyorsanız).
ifZaten çalıştırmayan ekran ( -z "${STY}") bir terminale ( -t 0) bağlıysa ve sudo çalıştırmıyorsam (bazen değişmez $USER) ilk fıkra doğru olacaktır .
reattachSSH aktif bir SSH madde portu (ile belirtilmiş işlevi ilk kontrol edecektir -n "${SSH_AUTH_SOCK}"). Ardından, o ~/.ssh/agent-scriptan etkin olan soket dosyasıyla değiştirilir ve ortam değişkeni ( $SSH_AUTH_SOCK) yeni değerle değiştirilir. Ardından komut dosyası geçerli kabuğu tek bir screenoturumla değiştirir (yalnızca birinin var olduğundan emin olun). reattachİşlevin bağımsız değişkenleri ( ${1:+"$@"}) komutuna iletilir .
Son bölüm ilk önce tüm ölü oturumları ( screen -wipe) kaldırır , kullanıcıya ekranın kısa bir süre içinde başlayacağını ve bunun yerine Ctrl- tuşuna basarak kabuğa dönebileceğini bildirir C. Sonra 5 saniye bekler ve reattachişlevi çağırır .