İhtiyacınız screen -R -dbiri var ve aksi bir oturum oluşturursanız hem otomatik varolan oturuma eklemek.
Bunu yalnızca etkileşimli mermilerde yaptığınızdan emin olun . Bash ~/.bashrc, ana işlemi rshd veya sshd olduğunda etkileşimli olmayan kabuklar için bile kaynak sağlar (belgelerde bahsedilir, ancak kaçırılması kolaydır). $-İçerdiği bir kabuğun etkileşimli olduğunu söyleyebilirsiniz i.
case $- in
*i*) screen -Rd;;
esac
Bu, farklı terminallerde farklı ekran oturumlarını kolayca çalıştırmanıza izin vermez.
Ekrandan ayırmanız ve ardından oturumu kapatmak için ana kabuğundan çıkmanız gerekir. Bu exec screenyerine kullanılarak çözülebilir screen.
Giriş kabuğu dışında bir kabuk başlatırsanız, çoğu zaman isteyeceğiniz şey olmayan ekrana geçersiniz. En azından, doğrudan aşağıdaki gibi bir şeyle etkileşimli bir ssh oturumunda çalıştırırken bunu kısıtlardım ~/.bash_profile:
case "/$(ps -p $PPID -o comm=)" in
*/sshd) screen -R -d;;
esac
.bashrcKabuğunuzun çıkmasına neden olan hata olarak oturum açma işlemini zorlaştıracak şekilde , karmaşık bir işlem yaparken dikkatli olun .
Ne tavsiye olduğu gibi sunucuda kabuk başlatma dosyalarını değiştirebilir, ancak bunun yerine istemciden açıkça ekrana çalıştırmak getirmemektir
ssh -t host.example.com screen -R -d
(Muhtemelen istemcide bir kabuk takma adı veya masaüstü ortamı kısayolu oluşturacaktınız.) Bu şekilde ekranı çalıştırmamayı kolayca seçebilir, alternatif bir oturum adı ve benzeri belirtebilirsiniz.