Saya memiliki banyak server, tempat saya menjalankan eksperimen menggunakan screen
. Prosedurnya adalah sebagai berikut:
ssh
ke server XXX- meluncurkan
screen
- mulai eksperimen dalam beberapa tab
- melepaskan
screen
- putuskan sambungan dari server
Sementara percobaan sedang berjalan, saya dapat dengan mudah menemukan di server mana mereka berada dengan masuk ssh
ke semua server dan mendaftar proses saya yang sedang berjalan (menggunakan top
atau ps
).
Namun, setelah percobaan selesai, bagaimana saya bisa menemukan di server mana saya memiliki sesi layar dibuka (sehingga saya dapat melihat output, meluncurkan kembali, dll)?
PS: Eksperimen saya juga mencetak output mereka ke file ... tapi ini bukan poin dari pertanyaan saya.
sumber
ls -R /var/run/screen/S-root/ | grep "NamingConvention"
. Layar simpan dalam<pid>.<screen_name>
format. Ini berguna untuk skrip bash. Jadi, jika Anda memiliki layar dengan nama,0000.NamingConvention
itu benar-benar hanya akan mengembalikan nama layar yang Anda cari dalam format yang mudah diurai.Perintah layar -list mungkin apa yang Anda inginkan.
Lihat pria itu
sumber
Sementara jawaban joshperry benar, saya merasa sangat menjengkelkan karena tidak memberi tahu Anda nama layar (yang Anda atur dengan opsi -t), itu sebenarnya yang Anda gunakan untuk mengidentifikasi sesi. (Bukan salahnya, tentu saja, itu cacat layar)
Itu sebabnya saya malah menggunakan skrip seperti ini:
ps auxw|grep -i screen|grep -v grep
sumber
ls
output. Jika perlu, Anda dapat menyimpan opsi -t juga.screen -rd <sessionname>
Saya tidak terlalu yakin dengan pertanyaan Anda, tetapi jika yang Anda inginkan adalah daftar sesi layar yang sedang dibuka, coba:
sumber
Jika Anda ingin melihat layar di Konsol maka Anda harus menulis perintah
jika Anda harus mengakses layar maka Anda harus menggunakan perintah di bawah ini
Tulis
PWD
di baris perintah untuk memeriksa di folder mana Anda saat inisumber
Dalam kebanyakan kasus
screen -RRx $username/
wasiat sudah mencukupi :)Jika Anda masih ingin membuat daftar semua layar maka letakkan skrip berikut di jalur Anda dan sebut layar itu atau apa pun yang Anda suka:
Ini akan berperilaku persis seperti layar kecuali untuk menampilkan semua sesi layar, ketika memberikan opsi -l-all sebagai parameter pertama.
sumber
Banyak orang sudah menunjukkan itu
akan daftar sesi layar.
Berikut ini trik lain yang mungkin bermanfaat bagi Anda.
Jika Anda menambahkan perintah berikut sebagai baris terakhir dalam file .bashrc Anda di server xxx, maka itu akan secara otomatis menyambung kembali ke sesi layar Anda saat login.
Semoga bermanfaat.
sumber
untuk melihat layar apa yang berjalan jika Anda menggunakan perintah
sumber
Jadi, Anda menggunakan layar untuk menjaga eksperimen tetap berjalan di latar belakang, atau apa? Jika demikian, mengapa tidak memulainya saja di latar belakang?
Dan jika Anda bertanya bagaimana cara mendapatkan pemberitahuan tentang pekerjaan yang saya lakukan, bagaimana dengan merangkai eksperimen bersama dengan perintah email?
sumber