• Indonesian
  • English
  • Setup Tmux Session Persistent: Panduan Lengkap 2026

    Kecepatan:
    ⏱ 13 min read
    Difficulty: Beginner – Intermediate
    Last Updated: Agustus 2026
    Tested On: Ubuntu 24.04 LTS, Debian 12, CentOS Stream 9, tmux 3.4+

    Jadi gini, ceritanya kemarin malam. Aku lagi asik ngerjain maintenance di salah satu server client. Lagi setengah jalan – tepatnya 60 persen progress migrasi datanya – eh, koneksi tiba-tiba putus. Tetangga lagi bor pemasangan WiFi, listrik sempat kedip, dan HP yang aku pake hotspot kelepas. Singkat cerita, SSH terputus. Dan semua proses yang lagi jalan di terminal itu, lenyap seketika.

    Rasanya kayak lagi nonton film epik terus tiba-tiba mati lampu di menit paling seru. Semua yang udah dikerjain berjam-jam, balik ke nol. Mau ngomel ke siapa? Siapa. Mau marah ke PLN? Gak akan ngubah apa-apa. Sejak malam itu aku nyimpen satu prinsip yang gak akan aku langgar lagi: gak ada kerja di terminal tanpa tmux session persistent.

    Sebenernya masalahnya bukan cuma soal koneksi yang mendadak mati. Coba dipikir-pikir, ada banyak banget skenario yang bisa bikin pekerjaan terminal kamu ilang. SSH timeout yang putus diam-diam, laptop yang ketutup pas lagi ngerjain sesuatu yang panjang, web terminal yang ke-refresh, atau – jujur aja – kadang kita sendiri yang salah pencet tombol tutup. Semuanya punya akar masalah yang sama: proses yang jalan di dalam terminal itu nyawanya nyangkut ke terminal tersebut. Terminal mati, proses ikut mati. Gak ada tawar-menawar.

    Untuk kita yang sehari-hari ngurus server, ini bukan cuma masalah jengkel-jengkel doang. Script backup yang udah jalan tiga jam bisa balik ke nol. Proses restore database yang setengah jalan harus diulang dari awal. Dampaknya ke operation bisa gede banget, belum lagi client yang nungguin. Lha, siapa yang mau nerangin ke client kalau progress 60 persen ilang gara-gara WiFi rumah? Gak enak kan.

    Nah, di sini tmux masuk. Tmux, singkatan dari terminal multiplexer, itu kayak jembatan antara terminal kamu dan proses yang lagi jalan. Dia berjalan sebagai server daemon di background. Terminal kamu cuma jadi semacam layar remotenya. Pas layarnya ditutup, prosesnya tetep hidup. Tinggal buka terminal baru, attach, dan kerjaan kamu masih ada persis di tempat terakhir kamu ninggalinnya.

    Dan kabar baiknya, setup-nya gak serumit yang dikira. Sepuluh sampai lima belas menit cukup buat dapetin workflow yang bisa nyimpen kerjaan kamu berhari-hari. Di artikel ini kita bakal bahas cara setup tmux session persistent dari nol sampai level yang bikin session kamu hampir mustahil ilang. Yuk, santai aja, kita bahas satu-satu.

    setup tmux session persistent linux

    Kenapa Bisa Persistent? Ngerti Dulu Arsitekturnya

    Biar gak cuma ikut-ikutan, ada baiknya kita paham dulu kenapa tmux bisa bikin session tetap hidup padahal terminal sudah ditutup. Ini sebenernya konsep yang gampang banget, tapi sering dilupain orang pas belajar tmux.

    Waktu kamu jalanin tmux, yang terjadi sebenarnya ada dua hal. Pertama, tmux nyalain sebuah server process di background – ini yang nyimpen semua session, window, dan pane. Kedua, terminal kamu jadi client yang nyambung ke server itu. Client boleh datang dan pergi kapan aja. Server-nya nggak ngaruh. Persis kayak warung kopi langganan kamu: pemiliknya ada di dapur terus, kamu bisa masuk-keluar warung sesukamu, dan kopi kamu tetap dibikinin.

    Selama server tmux-nya jalan, session kamu aman. Dia cuma mati kalau: (1) server tmux yang di-kill, (2) server yang mati, atau (3) kamu sengaja kill session-nya. Di luar itu, SSH putus, laptop mati, browser crash – semua gak masalah. Dan dari situ kita bangun semua langkah di bawah.

    Step 1: Install Tmux

    Sebagian besar distro modern udah punya tmux di repository resminya, jadi gak perlu nambah repo apa pun. Tinggal pilih yang sesuai sama sistem kamu.

    Buat keluarga Debian/Ubuntu:

    sudo apt update && sudo apt install tmux

    Buat keluarga RHEL/CentOS/Fedora:

    sudo dnf install tmux

    Kalau masih pake CentOS 7 atau server tua dengan yum:

    sudo yum install tmux

    Setelah kelar, cek versinya buat mastiin install-nya sukses:

    tmux -V

    Kamu bakal lihat sesuatu kayak tmux 3.4 atau versi di atasnya. Kalau udah, langsung nyobain workflow inti-nya.

    Step 2: Workflow Dasar Session Persistent

    Oke, sekarang bagian inti. Yang perlu kamu hafal cuma tiga perintah ini: bikin session, liat daftar session, dan attach ke session.

    Buat session baru dengan nama (biar gampang dibedain):

    tmux new -s migrasi -d

    Flag -d itu detached, artinya session-nya langsung jalan di background tanpa nampilin layar ke kamu. Cek daftar session yang lagi jalan:

    tmux ls

    Outputnya kira-kira gini:

    migrasi: 1 windows (created ...) [80x24]

    Nah, session migrasi udah jalan. Sekarang attach ke session itu:

    tmux attach -t migrasi

    Begitu attach, kamu udah di dalam tmux. Jalanin apa pun yang kamu mau – install package, jalanin script, migrasi data, apa aja. Nah, ini yang penting: pas kamu mau ninggalin pekerjaan itu, jangan tutup terminalnya. Tekan tombol detach dulu. Default-nya: Ctrl-b, terus lepas, terus tekan d.

    Ctrl-b d itu singkatan dari detach. Ini bakal ngeluarin kamu dari tmux, balik ke shell biasa, tapi session-nya tetep jalan di background. Sekarang coba tebak, apa yang terjadi kalau kamu tutup terminalnya, buka lagi, terus ketik tmux ls? Session migrasi masih ada. Attach lagi, kerjaan kamu lanjut dari posisi terakhir. Gitu doang sih. Simpel, tapi perubahan besar.

    Beberapa shortcut dasar yang wajib dihafal buat keseharian:

    • Ctrl-b d: detach, ninggalin session tetap jalan
    • Ctrl-b c: bikin window baru di dalam session
    • Ctrl-b n / p: pindah ke window berikutnya / sebelumnya
    • Ctrl-b w: pilih window lewat daftar
    • Ctrl-b %: split vertikal
    • Ctrl-b ": split horizontal
    • Ctrl-b x: kill pane yang aktif

    Buat yang mau setelan lebih nyaman, kita bisa rapihin lewat ~/.tmux.conf. Contoh konfigurasi minimal yang aku pake:

    set -g mouse on
    set -g base-index 1
    setw -g pane-base-index 1
    bind r source-file ~/.tmux.conf

    set -g mouse on itu bikin scroll dan klik bisa pake mouse, berguna banget buat yang terbiasa di GUI. base-index 1 bikin nomor window mulai dari 1, bukan 0 – kecil, tapi bikin irit kebingungan. Kalau kamu udah nyimpen konfigurasi ini, jalanin prefix + r (Ctrl-b r) buat reload config tanpa keluar dari tmux.

    Sampai sini kamu sebenarnya udah punya workflow persistent yang bener-bener bisa diandelin. Tapi tenang, masih ada level berikutnya.

    Step 3: Auto-Restore Session dengan Tmux-Resurrect dan Continuum

    Workflow di atas udah nyimpen session selama server tmux-nya jalan. Tapi ada satu celah: kalau server-nya reboot, semua session ilang. Nah, di situ tmux-resurrect dan tmux-continuum masuk.

    tmux-resurrect itu plugin yang nyimpen state session kamu – daftar session, window, pane, bahkan proses yang lagi jalan – ke file. Terus tmux-continuum yang otomatis nyimpen state-nya tiap beberapa menit dan ngerestore otomatis pas tmux distart. Kombinasi dua ini bikin session kamu hampir mustahil ilang.

    Cara pasangnya gampang. Pertama, install dulu TPM (Tmux Plugin Manager):

    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

    Terus edit ~/.tmux.conf dan tambahin ini:

    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    set -g @plugin 'tmux-plugins/tmux-continuum'
    set -g @continuum-save-interval '15'
    set -g @continuum-restore-on-start 'on'
    run '~/.tmux/plugins/tpm/tpm'

    Setelah itu reload config-nya (Ctrl-b r di dalam tmux, atau source manual), terus install semua plugin dengan cara masuk ke dalam tmux lalu tekan prefix + I (huruf besar i). Tunggu sebentar, TPM bakal clone semua plugin yang di-declare.

    Dengan continuum-save-interval 15, state session kamu otomatis disimpen tiap 15 menit. Terus dengan continuum-restore-on-start, tiap kali tmux server nyala, dia bakal otomatis restore session yang kemarin. Jadi kalau server reboot, begitu kamu attach, semua session balik lagi kayak gak pernah kejadian apa-apa.

    Buat yang mau control manual, tmux-resurrect juga punya shortcut: prefix + Ctrl-s buat save manual, prefix + Ctrl-r buat restore manual. Gunanya pas kamu mau save sebelum matiin server, biar gak nunggu interval 15 menit.

    Catatan penting: plugin ini nyimpen state sebagai file di ~/.tmux/resurrect/. Pastikan direktori home kamu gak ke-wipe pas maintenance, atau backup filenya sekalian. Kalau kamu udah punya pola backup otomatis, masukkan aja direktori itu ke daftar. Baca juga artikel kami soal backup otomatis pakai cron biar server kamu aman secara keseluruhan.

    Step 4: Pastikan Tmux Server Hidup Terus dengan systemd

    Kadang ada kasus di mana session tmux mati walaupun gak ada yang kill. Salah satu biang keroknya: service manager yang matiin proses background pas user logout, atau server yang reboot dan tmux-nya gak ikut nyala lagi. Biar gak kayak gitu, kita bisa daftarin tmux server sebagai systemd user service.

    Bikin file service-nya:

    mkdir -p ~/.config/systemd/user
    nano ~/.config/systemd/user/tmux-server.service

    Isi file-nya:

    [Unit]
    Description=tmux persistent server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/tmux start-server
    ExecStop=/usr/bin/tmux kill-server
    Restart=on-failure
    
    [Install]
    WantedBy=default.target

    Kalau lokasi binary tmux kamu beda (cek pake which tmux), ganti aja ExecStart-nya sesuai. Terus aktifkan:

    systemctl --user daemon-reload
    systemctl --user enable --now tmux-server.service
    systemctl --user status tmux-server.service

    Ada satu langkah penting lagi: loginctl enable-linger. Tanpa ini, service user kamu bakal mati pas kamu logout. Dengan linger, service-nya tetep hidup walau kamu logout – persis yang kita mau.

    loginctl enable-linger $USER

    Kombinasi systemd user service plus tmux-resurrect itu rasanya kayak punya asisten yang rapiin meja kerja kamu tiap malam. Reboot server, login lagi, semua langsung balik.

    Step 5: Auto-Attach Saat SSH Login

    Sekarang step yang bikin workflow makin nyaman: biar session otomatis ke-attach pas kamu SSH ke server. Jadi gak perlu ketik tmux attach -t terus-terusan. Tinggal buka SSH, langsung kebawa ke session.

    Caranya, tambahin script kecil di akhir ~/.bashrc (atau ~/.zshrc kalau pake zsh):

    if [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then
      tmux has-session -t main 2>/dev/null && exec tmux attach -t main || exec tmux new -s main
    fi

    Logikanya gini: kalau kamu belum di dalam tmux (cek variabel TMUX kosong) dan ini koneksi SSH, maka cek apakah session main udah ada. Kalau ada, attach; kalau belum, bikin baru. exec di depannya biar shell-nya langsung diganti sama tmux, jadi pas kamu detach, kamu logout sekalian. Rapi, kan?

    Kalau kamu sering kerja dengan beberapa session, tinggal ganti nama main jadi nama lain, atau bikin beberapa blok if. Opsi lain: bikin alias biar attach tinggal dua huruf:

    alias tm="tmux attach -t main || tmux new -s main"

    Nah, sekarang bayangin alurnya: SSH masuk, session langsung kebuka, kerja, Ctrl-b d, logout. Besoknya SSH lagi, session yang sama kebuka lagi, lengkap sama pane yang masih split. Mantep kan?

    Bonus: Scripting Session dari Luar

    Satu fitur yang sering gak disadari: kamu bisa ngontrol session tmux tanpa harus attach. Perintah tmux send-keys ngirim keystroke ke session yang lagi jalan. Ini emas banget buat otomasi.

    Contohnya, buat ngirim command ke session migrasi:

    tmux send-keys -t migrasi "df -h" Enter

    Nah, ini bisa dimasukin ke cron atau script bash. Jadi kamu bisa bikin script yang jalanin pekerjaan di dalam session yang persistent – kombinasi pas banget buat kamu yang suka otomasi. Contoh kecil: bikin session khusus backup, terus cron-nya nyuruh session itu jalanin backup tiap malam. Kalau mau liat isi session-nya tanpa attach, pakai capture-pane:

    tmux capture-pane -t migrasi -p | tail -20

    Dengan capture-pane, kamu bisa liat apa yang lagi tampil di session tanpa attach. Cocok buat monitoring proses panjang dari jarak jauh.

    Step 6: Best Practices dari Pengalaman

    Setelah semua setup jalan, aku mau kasih beberapa catatan yang aku dapetin dari pengalaman pribadi. Ini bukan teori, ini hal-hal yang nyata kejadian dan bikin aku sadar.

    Pertama, biasakan kasih nama session yang deskriptif. Jangan asal tmux new tanpa nama. Bayangkan kalau kamu pegang 5 session dengan nama default (0, 1, 2…), kamu bakal bingung sendiri yang mana buat migrasi dan yang mana buat monitoring. Nama yang jelas kayak migrasi-prod atau restore-db itu nyimpen waktu pas lagi panik.

    Kedua, perhatiin aktivitas session. Pas server tmux udah jalan lama, session bisa numpuk. Jangan ragu buat nge-kill session yang gak dipake lagi, biar RAM server gak kebuang percuma. Cek rutin dengan tmux ls, dan kill yang udah selesai. Server kamu pasti berterima kasih – kalau penasaran cara baca resource server, mampir ke artikel cara cek load server Linux.

    Ketiga, hati-hati dengan perintah yang jalan di dalam tmux di production server. Karena session-nya persistent, script yang lagi jalan di dalamnya bakal tetep jalan terus. Pastikan kamu sadar betul proses apa yang lagi hidup. Ini yang sering dilupain orang: persistent itu dua arah – proses baik bertahan, tapi proses buruk juga ikut bertahan.

    Keempat, security. Kalau kamu ngatur server yang dipakai banyak orang, jangan biarkan session tmux jadi tempat buat ninggalin credential atau data sensitif terbuka. Tmux punya fitur password protect via plugin, atau minimal kamu atur permission socket-nya biar gak bisa di-access user lain. Buat yang mau ngunci akses SSH secara umum, baca panduan SSH hardening.

    Kelima, biasakan save manual sebelum maintenance besar. Walaupun continuum udah auto-save tiap 15 menit, kadang 15 menit terakhir sebelum reboot itu berisi kerjaan yang paling penting. Prefix + Ctrl-s itu gratis, gak ada ruginya.

    Tabel Troubleshooting

    Gak ada setup yang mulus terus. Ini tabel troubleshooting yang paling sering aku temuin dari ticket-ticket yang masuk, lengkap dengan solusinya.

    Symptom Penyebab Solusi
    tmux: command not found Tmux belum ke-install atau PATH-nya gak lengkap Install lewat apt/dnf/yum sesuai distro
    can’t find session ‘xxx’ Nama session yang kamu ketik salah, atau session udah di-kill Cek tmux ls dulu buat liat daftar session yang aktif
    Session langsung [exited] pas attach Ada error di ~/.tmux.conf atau di shell config (bashrc/zshrc) Jalanin tmux tanpa config dulu: tmux -L debug, terus cek error-nya
    Ctrl-b gak ngasih respon Prefix sudah diganti, atau terminal-nya nangkep kombinasi key-nya Cek set -g prefix di config, atau pakai Ctrl-b dua kali buat ngetes
    Session ilang setelah reboot Continuum/resurrect gak terpasang, atau systemd service mati Pasang plugin resurrect + continuum, dan daftarin tmux ke systemd user service
    Gak bisa scroll pake mouse set -g mouse on belum ada di config Tambahin set -g mouse on ke ~/.tmux.conf lalu reload
    User lain gak bisa attach session kamu Socket tmux default cuma bisa diakses pemiliknya Buat shared session dengan tmux -S /tmp/shared dan atur permission-nya

    Kalau error-nya masih ganggu dan gak ada di tabel, langkah paling aman: cek file log atau jalanin tmux dengan debug mode. Kadang masalahnya cuma di config yang typo. Cek juga apakah update tmux baru-baru ini bikin config lama kamu gak kompatibel.

    FAQ

    Q: Apakah session tmux bisa bertahan setelah reboot server?

    Secara default tidak, karena server tmux ikut mati pas server reboot. Tapi dengan tmux-resurrect + tmux-continuum, session otomatis disimpen dan di-restore tiap kali tmux nyala. Kalau kamu tambah systemd user service, tmux juga otomatis nyala lagi setelah reboot. Kombinasi itu bikin session hampir mustahil ilang.

    Q: Tmux sama screen, bedanya apa dan pilih yang mana?

    Keduanya terminal multiplexer yang bisa bikin session persistent. Tmux punya fitur lebih kaya: split yang lebih fleksibel, konfigurasi yang scriptable, dan ekosistem plugin yang jauh lebih gede. Screen masih dipake karena ringan dan udah ada di mana-mana, tapi buat kerjaan modern, mayoritas sysadmin udah pindah ke tmux. Perbandingan lengkapnya bisa kamu baca di artikel tmux vs screen.

    Q: Gimana cara restore session tmux yang udah ilang?

    Kalau pakai tmux-resurrect, kamu bisa restore manual dengan prefix + Ctrl-r, asal file state-nya masih ada di ~/.tmux/resurrect/. Kalau pakai continuum dengan opsi restore-on-start, restore-nya otomatis tiap tmux server distart. Kalau dua-duanya gak ada, session-nya kemungkinan besar udah gak bisa dibalikin – makanya setup-nya penting dari awal.

    Q: Amankah pakai tmux di production server?

    Aman, justru ini salah satu best practice yang dipakai banyak NOC dan sysadmin. Yang perlu diperhatiin: jangan biarkan proses gak jelas jalan terus di dalam session, rutin bersihin session yang gak kepake, dan jangan simpan credential sensitif terbuka di dalam tmux. Kalau diterapkan dengan disiplin, tmux justru bikin operasional lebih aman karena gak ada kerjaan yang kehilangan progress gara-gara koneksi putus.

    Sekalian mampir ke artikel terkait lainnya di syslogsolutions.net biar makin lengkap: tmux vs screen, monitoring uptime server, dan cek load server Linux.

    Author: Syslog Solutions – NOC & Server Management Team. We handle 500+ servers daily, from shared hosting to enterprise dedicated infrastructure.

    Gitu doang sih sebenernya. Semua yang kamu butuhin cuma tmux yang ke-install, workflow attach-detach yang kehafal, dan sedikit plugin biar session-nya awet. Buat yang baru mulai, jangan keburu pusing sama semua fiturnya – mulai dari session satu dulu, hafalin Ctrl-b d, terus naik level pelan-pelan. Yang penting kerjaan kamu gak akan ilang lagi gara-gara koneksi. Sip, matur nuwun udah mampir, semoga makin lancar kerjaannya.