Saya memiliki beberapa layar yang berjalan di server Ubuntu yang dimulai sebagai:
screen -dmS screen1 cmd
screen -dmS screen2 cmd
etc...
Dan saya perlu membunuh satu layar, tetapi tidak semuanya. Apa perintah yang benar untuk membunuh satu layar tertentu dengan namanya? Saya telah membaca halaman manual tetapi sepertinya saya tidak dapat menemukan perintah yang saya cari.
Saya juga ingin menulis perintah ini menjadi skrip bash jadi saya tidak bisa cukup screen -r screen1
tekan Ctrl+ Xseperti biasa.
bash
gnu-screen
kill
BassKozz
sumber
sumber
Jawaban:
Dari halaman manual:
Anda dapat melakukan :
sumber
Jika Anda melakukan
screen -list
, Anda akan melihat bahwa setiap nama layar dimulai dengan angka, yang merupakan PID layar:Dari sana, cukup kirim sinyal KILL ke PID khusus ini:
dan itu akan membunuh layar tertentu.
sumber
solusi defraagh tidak bekerja untuk saya, namun saya dapat mematikan sesi layar menggunakan ide Raphink:
layar-daftar dapatkan ID proses
bunuh -9 PROCESSID
layar -bersihkan SESSIONID
sumber
Jika Anda memiliki beberapa layar dengan nama yang sama, Anda dapat mematikannya sekaligus:
Command
screen -ls
mencetak layar dengan nomor prosesnya. Sebagai contoh, 4773.test adalah layar dengan nomor proses 4773 dan tes nama . Output sampel:egrep
Filter perintah di atas teks sampel yang dikirim melalui jalur pipa | .awk -F "." '{print $1}'
mengekstrak kolom pertama dari setiap baris. Pembatas antar kolom didefinisikan sebagai titik (.) Dengan opsi -Fxargs kill
akan mematikan semua proses yang nomornya dikirim melalui pipa |.xargs
digunakan ketika kita ingin menjalankan perintah pada setiap input.sumber
Anda membuka jendela baru dengan
Anda menutup jendela dengan
atau keluar dari perintah di dalam jendela
sumber
Saya sudah berurusan dengan ini sebagai berikut:
Penjelasannya adalah bahwa Anda mengambil output dari
screen -ls
dan menemukan layar tertentu yang Anda tertarik dengan menggunakan grep kemudian menetapkan string itu ke variabelprocess
.Karena output dari
screen -ls
selalu PID diikuti oleh periode Anda kemudian dapat menggunakan cut untuk menyingkirkan periode dan semuanya setelahnya. dalam contoh di atas kita meletakkannya di dalam tanda kurung dan mengumpankannya ke perintah kill meskipun Anda bisa melakukannya secara linear yang mungkin termasuk menulis ke file temp dan membacanya.Anda perlu memastikan bahwa nama layar Anda unik dan grep HANYA mengembalikan nama layar yang ingin Anda bunuh.
sumber