Masaüstümdeki tek bir ssh komutuyla uzak sunucularda ekran oturumları başlatabilmek istiyorum. Ancak, ekranın ssh üzerinden bir komut çalıştırırken kullanılamayan bir terminale ihtiyacı var gibi görünüyor.
Açıkça
ssh [email protected] screen "tail -f /var/log/messages"
(örnek olarak) çalışmıyor ve
Must be connected to a terminal.
Ssh komutunun bir ekranın altında başlatılmasını istiyorum, böylece daha sonra giriş yapabilir ve manuel olarak başlattığım bir ekran oturumuna yaptığım gibi ekleyebilirim.
Ssh için -t seçeneğini kullanmayı deneyin
ssh -t [email protected] screen "tail -f /var/log/messages"
Gönderen man ssh
- t Yalancı tty dağıtımını zorla. Bu, uzak bir makinede arbi - Trary ekran tabanlı programları yürütmek için kullanılabilir; bu, örneğin, örneğin menü hizmetlerini uygularken Çok yararlı olabilir. Birden fazla -t Seçeneği, ssh'ın yerel tty'si olmasa bile tty ayırmayı zorlar.
Kullanabilirsiniz:
ssh [email protected] screen -m -d "tail -f /var/log/messages"
Bu, üzerinde çalışan bir komutla ayrı bir ekran başlatır.
-m causes screen to ignore the $STY environment variable. With
"screen -m" creation of a new session is enforced, regardless
whether screen is called from within another screen session or
not. This flag has a special meaning in connection with the `-d'
option:
-d -m Start screen in "detached" mode. This creates a new session but
doesn't attach to it. This is useful for system startup
scripts.
Geç cevap, ama bu benim yaptığım, bunu yapan bir takma ad (diyelim t):
ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O
Bu, ssh
'e aracıyı ve X11 iletmeyi devre dışı bırakmasını söyler ve screen
öğesine çalışan bir oturuma eklenmesini söyler, gerekirse yeni bir oturum başlatır, ^Z
koparma komutu olarak UTF-8 kullanın ve terminal hakkında akıllı olun.
Bütün bunlar bir terminal açabileceğim, t
yazdığım ve $ MYSERVER üzerinde ekran oturumumu açacağım anlamına geliyor. Daha sonra başka bir terminal açabilir, aynı şeyi yapabilirim ve aynı oturuma başka bir pencere alırım.
Aynı ekran oturumunda birden fazla terminal penceresine sahip olmak gerçekten güzel, böylece aynı anda iki ekran sekmesine bakabilirsiniz.
Sunucumdaki ~/.bashrc dosyasına aşağıdakileri koyarak, sunucuda ilk kez oturum açtığımda bir ekran oturumu başlatır veya zaten çalışıyorsa, beni o oturuma yeniden bağlar.
Bunu çok kullanışlı buluyorum:
if [ -n "$SSH_CONNECTION" ] && [ -z "$SCREEN_EXIST" ]; then
export SCREEN_EXIST=1
screen -DRi
fi