İhtiyacınız screen -R -d
biri 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 screen
yerine 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
.bashrc
Kabuğ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.