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.
ssh
terminal
gnu-screen
tty
Thomas Vander Stichele
sumber
sumber
Jawaban:
Coba gunakan opsi -t untuk ssh
Dari man ssh
sumber
ssh -t user@machine tmux attach
dan saya dapat melampirkan sesi tmux jarak jauh tetapi itu mengacaukan dengan pengkodean karakter. Ini hanya menampilkan karakter ascii. Apakah ada perbaikan untuk ini?Anda dapat gunakan:
Itu memulai layar terpisah dengan perintah berjalan di atasnya.
sumber
Jawaban telat, tapi inilah yang saya lakukan, saya membuat alias (sebut saja t) yang melakukan ini:
Ini memberitahu
ssh
menonaktifkan agen dan penerusan X11, dan memberitahuscreen
untuk melampirkan sesi berjalan, mulai yang baru jika perlu, gunakan^Z
sebagai perintah breakout, gunakan UTF-8 dan cerdas tentang terminal.Semua ini berarti saya dapat membuka terminal, mengetik
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 dapat melihat dua tab layar sekaligus.
sumber
t
meng- hardcoding alias Anda yang merupakan satu host, Anda dapat menggabungkannya dengan nama host di ssh_config Anda.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:
sumber
screen -ls
saya tidak melihat sesi layar