“Screen -r” dosyasını benim .bashrc'ye koymak iyi bir fikir mi?


17

Sunucumda ssh oturumlarını canlı tutmak için ekranı kullanmak istiyorum. Oturum açtığımda kullanıcılarım için çalışan herhangi bir oturumu otomatik olarak devam ettirebilirsem çok iyi olurdu. Bunu yapmanın en kolay yolu .bashrc'ime "screen -r" ekliyor olacak ve bu iyi çalışıyor gibi görünüyor. Ben sadece bunun henüz test etmediğim koşullar altında herhangi bir şeyi bozup çözmeyeceğini merak ediyorum. Burada tecrübesi olan ve bunun yapmam gerekip gerekmediğini söyleyen var mı?

Yanıtlar:


20

İ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.


Mükemmel. Erkek sayfasında olmalı.
marcusw

Yayınlanmasının SSH daha iyi değil mi screen -D -Rhatta screen -D -RR?
niutech,

2

X sunucusu başlatma komut dosyalarınız genellikle yeni bir kabuk başlatır, örneğin "Kullanıcı Tanımlı Oturum" kullanarak gdm kullanarak giriş yapıyorsanız.

Bence çıkmayan herhangi bir şey, X başlangıcınızın kapanmasına neden olabilir. Bu içerecektir screen -r.


X sunucusu başlangıç ​​komut dosyaları çalışmayacak .bashrc. Ancak bunun bir problem olacağı başka durumlar da var, örneğin koşarken ssh host.example.com somecommand(garip bir şekilde bash koşuyor .bashrc).
Gilles

"Kullanıcı Tanımlı Oturum" seçeneğini seçerseniz bazı dağıtımlar yapılır. Ubuntu'da, açıkça .profile kaynaklanıyor, diğerleri ise bir oturum açma kabuğunun içinden .xsession'ı çağırıyor, bu genellikle .bash_profile anlamına gelir ve çoğu kullanıcı .bash_profile içerisinden kaynak .bashrc'yi kullanır.
Mikel,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.