Halo guys, Ridwan here..
Come again with a new notes update!
Sebagai pengguna Linux, access ke terminal menggunakan ssh pasti sudah hal biasa.. dan sering mengalami hal ini?
"Kamu sedang SSH ke remote server, lalu menjalankan proses yang memakan waktu lama. Mungkin itu update sesuatu, compiler code, atau sedang menjalankan script migrasi database yang krusial, atau apapun itu. Tapi...Tiba-tiba, koneksi internet di tempatmu bekerja hiccup sedikit, atau laptopmu kehabisan baterai dan mati."
Kemudian... SSH session terputus.
Saat kamu buru-buru login kembali, proses yang tadi berjalan sudah hilang.. karena session Terminated.
Membuat kamu tidak tahu apakah prosesnya selesai, gagal di tengah jalan, atau malah membuat corrupted data.
Masalahnya ada di : Process life-cycle terikat pada SSH session.
Begitu kamu logout atau disconnect, semua child process di dalamnya ikut tewas.
Di sinilah Tmux (Terminal Multiplexer) menjadi solusi !
Konsepnya sederhana: Kita membuat sesi di dalam server menggunakan Tmux.
Jika koneksi SSH kita putus, sesi Tmux tersebut tidak mati. Dia hanya "Detached" (terlepas) dari antarmuka kita, tapi tetap hidup dan berjalan secara background di server.
Nantinya, kapanpun kita siap, kita bisa "Attach" (menempel) kembali ke sesi tersebut dan melihat status terakhirnya, persis seperti saat kita meninggalkannya. Untuk demo penggunaan Tmux bisa lihat video berikut :
Ok, untuk yang penasaran.. langsung kita gas !
--
Install Tmux
Packages untuk Tmux sudah tersedia di banyak repo dari distro linux, jadi untuk install nya cukup dengan command berikut :
# RHEL/CentOS/Fedora
$ sudo dnf install tmux
# Ubuntu/Debian
$ sudo apt install tmuxUntuk dokumentasi / pages dari Tmux, dapat di lihat pada halaman berikut :
https://github.com/tmux/tmux/wiki
Membuat Session Baru
Untuk membuat session pada tmux, kita dapat menggunakan command berikut :
# Membuat session baru, tampa naming
$ tmux new-session
# Membuat session baru, dengan nama "rdw-update"
$ tmux new -s Rdw-UpdateLogout / Detach Session
Setelah berhasil masuk ke dalam session tmux, kita dapat keluar kembali ke console sebelum nya, dengan cara detach session. Seperti meninggalkan terminal tampa menutup/closed. untuk melakukan detach session kita dapat menggunakan command berikut :
# Detach from Session menggunakan shourcut
Ctrl + b
kemudian
d
## Detach from Session menggunakan input command
Ctrl + b
kemudian
: detachKalau kalian terbiasa menggunakan "Vim Text Editor", mungkin sudah familiar dengan trigger tombol Esc, kemudian tanda : untuk input command. Pada Tmux, kita menggunakan "Ctrl + b" sebagai trigger nya, kemudian tanda : untuk input command, atau kalian juga bisa langsung menggunakan shortcut,
Melihat Tmux session
untuk melihat session yang sedang active, kita dapat menggunakan command berikut :
# Melihat session pada Tmux dari luar tmux
$ tmux list-sessions
atau
$ tmux ls
# Melihat session dari dalam tmux
Ctrl + b
kemudian
sAttach Session
Setekah berhasil membuat session, kemudian logout dari session / detach session, kita dapat masuk ke session tersebut kembali, dengan menggunakan command berikut :
# Attach to a spesifik session dengan nama "Rdw-Test
$ tmux attach -t Rdw-Test
# Attach to the last session
$ tmux attachOk, sampai step ini kita berhasil mempelajari basic-basic penggunaan Tmux.
untuk lebih detail terkait shortcut, cheat sheet, atau refrensi lainnya
Reff :
Thank you sudah membaca tulisan ini, Semoga bermanfaat !
Best Regards
Rdw