Saya telah membaca tentang cara memulai layar secara otomatis ketika saya ssh
ke server jarak jauh. Saya ingin satu-liner sederhana untuk ditambahkan ke saya .bash_profile
untuk memulai screen
ketika saya ssh
masuk, dan TIDAK keluar dari koneksi jarak jauh saya ketika saya melepaskan layar.
Saya telah melihat ke dalam exec screen
dan cukup banyak setiap kombinasi -d
, -r
, -D
dan -R
dan tidak tahu bendera apa yang saya butuhkan.
Idealnya saya akan mengetik ssh whatever
dan login ke server di yang baru screen
atau dapat memasang kembali layar lama, saya ingin tahu bagaimana melakukan keduanya untuk melihat mana yang saya sukai lebih baik. Kemudian saya bisa mengetik Ctrl adatau Ctrl ddan membawanya kembali ke ssh
login normal untuk server itu (di mana Anda akan melihat motd). Dari sana saya dapat screen -r
kembali ke layar apa pun yang saya inginkan, atau tekan Ctrl dlagi untuk keluar.
sumber
logout
atauexit
tepat setelah baris st sesi ssh segera diakhiri setelah layar ditutup oleh ctrl + D?Saya memiliki masalah dengan 40 sesi layar cascading yang dibuat dengan beberapa solusi saat memulai jendela atau sesi layar baru. Saya bisa menghilangkan layar cascading dan membuat sesi baru jika tidak ada dengan ini:
Ini menguji apakah Anda berada di sesi layar dan berjalan
screen -R
jika Anda tidak. Tanpa tes Anda mendapatkan "Melampirkan dari dalam layar?" peringatan dari layar setiap kali Anda membuat jendela layar baru.sumber
screen -ls
tes yang disebutkan Tonyscreen -RR
akan menyambung kembali ke sesi pertama yang tersedia atau membuatnya jika perlu.sumber
Jika saya mengerti kebutuhan Anda, Anda harus mencoba:
if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi
Ini akan membuat hanya satu sesi layar, jika tidak maka akan menyambung kembali ke yang ada dalam mode multi-windows (bahkan jika Anda memiliki beberapa sesi ssh, Anda akan berakhir pada sesi layar yang sama)
sumber
screen -xR
, yang tampaknya diurai sebagai "lampirkan jika ada sesuatu untuk dilampirkan, selain membuat layar baru".Di sini sedikit ekstensi,
skrip untuk bashrc memeriksa apakah ada lebih dari satu sesi layar terpisah. Jika ada lebih, maka Anda harus memilih sesi secara manual. Ketika ada sesi terpisah, Anda kembali ke sesi ini. Jika Anda keluar dari sesi maka sesi ssh akan menutup juga.
sumber
Jika Anda ingin terhubung secara otomatis ke sesi layar ketika Anda terhubung melalui SSH, tambahkan kode di bawah ini ke Anda
.bash_profile
atau.bashrc
di mesin jarak jauh Anda, itu akan:.bashrc
Ini skripnya:
PS: Jika Anda ingin mengaktifkan ini untuk terminal lokal, hapus
&& ! -z "${SSH_CLIENT}
pada baris pertama.sumber