it-swarm-id.com

Bagaimana saya bisa memulai sesi layar dengan perintah over ssh di server jauh dari desktop saya?

Saya ingin dapat meluncurkan sesi layar pada server jauh dari satu perintah ssh di desktop saya. Namun, layar sepertinya membutuhkan terminal, yang tidak tersedia saat menjalankan perintah melalui ssh.

Jadi yang jelas

ssh [email protected] screen "tail -f /var/log/messages"

(sebagai contoh) tidak berfungsi, dan memberi

Must be connected to a terminal.

Saya ingin ssh untuk meluncurkan perintah di bawah layar sehingga saya bisa masuk nanti dan melampirkan seperti saya akan ke sesi layar saya akan diluncurkan secara manual.

Coba gunakan opsi -t untuk ssh

ssh -t [email protected] screen "tail -f /var/log/messages"

Dari man ssh

 - t Memaksakan alokasi pseudo-tty. Ini dapat digunakan untuk menjalankan program berbasis layar arbi - 
 Trary pada mesin jarak jauh, yang dapat 
 Sangat berguna, mis., Saat mengimplementasikan layanan menu. Opsi multiple -t 
 Memaksa alokasi tty, bahkan jika ssh tidak memiliki tty lokal. 
79

Kamu bisa menggunakan:

ssh [email protected] screen -m -d "tail -f /var/log/messages"

Itu memulai layar terpisah dengan perintah berjalan di atasnya.

   -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.
33
Alakdae

Jawaban telat, tapi inilah yang saya lakukan, saya membuat alias (sebut saja t) yang melakukan ini:

ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O

Ini memberi tahu ssh untuk menonaktifkan agen dan penerusan X11, dan memberi tahu screen untuk melampirkan sesi berjalan, mulai yang baru jika perlu, gunakan ^Z sebagai perintah breakout, gunakan UTF-8 dan cerdaslah tentang terminal.

Semua ini berarti saya bisa membuka terminal, ketik t dan itu akan membuka sesi layar saya di $ MYSERVER. Saya kemudian dapat membuka terminal lain, melakukan hal yang sama dan saya mendapatkan jendela lain untuk sesi yang sama.

Sangat menyenangkan memiliki beberapa terminal windows ke sesi layar yang sama sehingga Anda bisa melihat dua tab layar sekaligus.

8
w00t

Dengan meletakkan berikut ini di file ~/.bashrc di server saya, ia memulai sesi layar saat pertama kali saya masuk ke server, atau jika ada yang sudah berjalan, sambungkan kembali saya ke sesi itu.

Saya menemukan ini sangat berguna:

if [ -n "$SSH_CONNECTION" ] && [ -z "$SCREEN_EXIST" ]; then
    export SCREEN_EXIST=1
    screen -DRi
fi
4
Brent