Screen

Tag

, , , , ,

Bayangkan skenario berikut. Anda butuh menjalankan program untuk eksperimen. Akan tetapi, karena ukuran data yang besar atau kompleksitas algoritma yang besar, Anda butuh menjalankannya di komputer dengan spek tinggi, dalam jangka waktu yang cukup lama, bisa hingga berhari-hari. Anda sudah dibuatkan akun untuk mengakses komputer spek tinggi tersebut (sebut saja namanya Monster) dan Anda bisa mengaksesnya menggunakan SSH kemudian menjalankan program dari sana. Namun eksekusi program lewat SSH ini akan berhenti apabila koneksi putus, baik sengaja maupun tidak sengaja. Bayangkan setelah menunggu seminggu lebih, namun program berhenti jalan karena PLN mati lampu, pastinya sangat mengesalkan.

Untuk menghindari hal tersebut, kita bisa menggunakan program bernama screen. Screen memungkinkan kita untuk menjalankan  semacam menjalankan terminal di dalam terminal. Kita cukup me-attach atau detach terminal screen yang ingin kita jalankan.  Untuk instalasi pada sistem ubuntu, cukup ketik

sudo apt-get install screen

tentunya jika Anda punya akses. Jika tidak bisa ditanyakan ke admin terdekat.

Setelah instalasi cukup ketik screen. Anda akan disambut teks berisi lisensi. Cukup tekan <Enter>. Setelah itu Anda dapat menjalankan program eksperimen yang diinginkan. Tekan <Ctrl>+<a> lalu <d> untuk me-detach screen dari terminal. Sekarang walaupun koneksi SSH putus, program terus berjalan tanpa interupsi.

screen welcome

Setelah screen dipanggil dari terminal.

running program

Jalankan eksperimen yang diinginkan.

detach

CTRL+a, d untuk detach screen dari terminal.

Untuk melihat progress, bisa dengan mengetik screen -r, jika hanya ada satu screen yang aktif, Multipel screen juga bisa dijalankan. Ketik screen -ls untuk melihat ada berapa screen yang aktif. Kemudian gunakan perintah screen -r <pid> untuk memilih/attach screen ke terminal.

multiple screens

continue

Petunjuk penggunaan lengkap bisa dilihat di: https://www.gnu.org/software/screen/manual/screen.html

Semoga berguna. Salam.

 

Ikuti

Get every new post delivered to your Inbox.