tmux ajanı ayakta tutar, ama dizüstünü kapatırsan tutmaz. Sınır tam olarak burada
tmux gerçek bir araç ve ajanlarla çalışıyorsan öğrenmeye değer: terminali kapatsan da oturum yaşamaya devam ediyor, dört ajanı yan yana izleyebiliyorsun. Ama en çok dolaşan cümle doğru değil: kapağı kapat, Wi-Fi'yı kes, bir saat sonra gel, iş bitmiş olsun. Kapak kapanınca makine uyku moduna geçiyor ve bütün süreçler donuyor. Oturum ölmüyor ama o bir saatte hiçbir şey de ilerlemiyor. Wi-Fi'yı kesince zaten ajan API'ye ulaşamıyor. tmux işi bilgisayarından çıkarmıyor, terminalden ayırıyor. Bir de Windows'ta tmux yok, aracın kendi dokümanındaki desteklenen sistemler listesinde bulunmuyor. Aşağıda gerçekten ne işe yaradığı, doğrulanmış kurulum komutları, bilmen gereken dokuz tuş, ilk gün canını sıkacak üç şey ve kapatıp gitmenin gerçek tarifi var.
Aracın kendisi
Repo burada. tmux bir terminal çoklayıcısı: tek pencereden birden fazla terminal açmanı, aralarında gezmeni ve hepsini arka planda çalışır bırakmanı sağlıyor. Yeni bir araç değil, sunucu tarafında çalışan herkesin yıllardır kullandığı standart bir şey.
Aşağıda fazladan olan şey şu: en çok dolaşan iddianın neden yanlış olduğu, kapağı kapatınca gerçekte ne olduğu, Windows'ta neden çalışmadığı ve orada nasıl çalıştırılacağı, kaynağından doğrulanmış kurulum komutları, günlük kullanımda yeten dokuz tuş, ilk gün canını sıkacak üç şey ve kapatıp gitmenin gerçekten işe yarayan tarifi.
Asıl işe yarayan yer
Bir ajanı terminalde çalıştırdığında iş, o terminal penceresine bağlı oluyor. Pencereyi kapatırsan, SSH bağlantın koparsa ya da yanlışlıkla terminali kapatırsan iş de gidiyor. tmux araya giriyor: süreç artık pencereye değil, arka planda duran tmux sunucusuna bağlanıyor. Pencereyi kapat, oturum yaşamaya devam eder.
İş neye bağlı
tmux olmadan
iş terminal penceresine bağlı
- Pencereyi kapatınca ajan ölür
- SSH koparsa iş yarıda kalır
- Aynı anda tek şey izleyebilirsin
tmux ile
iş oturuma bağlı
- Pencereyi kapat, oturum yaşar
- SSH koparsa iş sunucuda devam eder
- Dört bölmede dört şeyi birden izlersin
İkinci faydası ekranı bölmek. Bir bölmede kod yazan ajan, bir bölmede testler, bir bölmede sunucu logları, bir bölmede sen. Hepsi tek pencerede ve hepsi aynı anda görünüyor. Ajanla çalışırken bu, sekme arasında gidip gelmekten belirgin şekilde rahat.
Kapağı kapat, bir saat sonra gel kısmı doğru değil
Bu cümle tmux anlatılırken hep geçiyor ve kulağa çok iyi geliyor. Ama tmux işi bilgisayarından çıkarmıyor, sadece terminal penceresinden ayırıyor. İş hâlâ senin makinende çalışıyor. Makine durursa iş de duruyor.
Söylenen ve olan
Dizüstünün kapağını kapat, bir saat sonra gel, iş bitmiş olur
Kapak kapanınca makine uyku moduna geçer ve bütün süreçler donar. Oturum ölmez, uyandırınca kaldığı yerden devam eder, ama o bir saatte tek satır ilerlemez
Wi-Fi'yı kes, ajan çalışmaya devam eder
Ajan her adımda bir API'ye istek atıyor. Ağ giderse ajan da durur. tmux'ın ağ bağlantısıyla hiçbir ilgisi yok
tmux işi bilgisayarından çıkarır
tmux işi terminalden ayırır, makineden değil. Bilgisayarı kapatır ya da yeniden başlatırsan tmux sunucusu da kapanır ve oturum tamamen gider
Kapatıp gitmek gerçekten isteniyorsa
İddianın doğru olduğu bir senaryo var ama şartı şu: iş senin dizüstünde değil, başka bir makinede çalışacak. tmux'ın yıllardır asıl kullanıldığı yer zaten burası, ajanlar çıkmadan çok önce de böyleydi.
Gerçek tarif
- 1
Bir sunucu kirala
Küçük bir VPS yeter. İş orada çalışacak, senin dizüstünde değil
- 2
SSH ile bağlan
Kendi terminalinden sunucuya giriyorsun, artık onun kabuğundasın
- 3
Ajanı tmux içinde başlat
Sunucuda tmux oturumu aç ve ajanı onun içinde çalıştır
- 4
Ayrıl ve çık
Ctrl+b sonra d ile ayrıl, SSH'ı kapat. Artık dizüstünü kapatabilirsin
Fark şu: dizüstün artık sadece bir ekran. Kapanması, uyuması, Wi-Fi'sının gitmesi işi etkilemiyor çünkü iş orada değil. Bu kurulumda tmux zorunlu, süs değil: SSH bağlantısı koptuğu anda sunucuda başlattığın süreç de ölür, tmux tam olarak bunu engelliyor.
Bedeli var, peşinen bil
Ajanı sunucuda çalıştırmak, kodunun ve API anahtarlarının da orada olması demek. Depoyu sunucuya çekeceksin, anahtarları oraya koyacaksın ve o makinenin güvenliği artık senin işin. Küçük bir deneme için dizüstünde tmux fazlasıyla yeter; sunucu, saatler süren işleri gerçekten arkanda bırakmak istediğinde anlamlı.
Kurulum, ve Windows'taki tuzak
Windows'ta tmux çalışmaz
tmux'ın kendi dokümanı desteklediği sistemleri tek tek sayıyor: OpenBSD, FreeBSD, NetBSD, Linux, macOS ve Solaris. Windows bu listede yok. PowerShell'de ya da Komut İstemi'nde tmux kuramazsın, bu bir ayar meselesi de değil. Çözüm WSL: Windows'un içinde çalışan gerçek bir Linux. Kurduktan sonra tmux'ı Linux tarafında kuruyorsun ve her şey normal şekilde çalışıyor.
# Yönetici olarak açtığın PowerShell'de
wsl --install
# Bilgisayarı yeniden başlat, Ubuntu'yu aç, kullanıcı adı ve parola belirle
# Sonra Ubuntu terminalinde
sudo apt install tmuxwsl --install komutu gerekli bileşenleri açıp varsayılan olarak Ubuntu kuruyor ve yeniden başlatma istiyor. Windows 11'de ya da Windows 10'un 2004 ve üstü sürümlerinde çalışıyor. Zaten WSL kuruluysa bu komut yardım metnini basar, o zaman doğrudan ikinci adıma geç.
# macOS
brew install tmux
# Ubuntu, Debian ve WSL
sudo apt install tmux
# Fedora
sudo dnf install tmux
# Arch
sudo pacman -S tmuxGünlük kullanımda yeten dokuz tuş
tmux'ın mantığı şu: önce Ctrl+b'ye basıp bırakıyorsun, sonra komut tuşuna. Aynı anda değil, arka arkaya. Ctrl+b'ye tmux'ta ön ek tuşu deniyor ve neredeyse her şey onunla başlıyor. Altta kalan koyu çubuğu gördüğün an bir tmux oturumunun içindesin demektir.
Bunlar yeter
| Ne yapmak istiyorsun | Ne yazacaksın |
|---|---|
| Yeni oturum başlat | tmux new -s ajan |
| Ayrıl, iş devam etsin | Ctrl+b sonra d |
| Açık oturumları gör | tmux ls |
| Oturuma geri dön | tmux attach -t ajan |
| Ekranı yan yana böl | Ctrl+b sonra yüzde işareti |
| Ekranı alt alta böl | Ctrl+b sonra çift tırnak |
| Bölmeler arasında geç | Ctrl+b sonra ok tuşları |
| Bir bölmeyi tam ekran yap | Ctrl+b sonra z |
| Oturumu tamamen kapat | tmux kill-session -t ajan |
Buradaki ajan kelimesi oturuma verdiğin isim, istediğini yazabilirsin. İsim vermek şart değil ama üç oturumun olduğunda hangisinin ne olduğunu bilmek istiyorsun. Bütün tuş atamalarını görmek istersen Ctrl+b sonra soru işareti, çıkmak için q.
İlk gün canını sıkacak üç şey
Bunlar hata değil, tmux'ın varsayılan davranışı. Ama bilmeden karşılaşınca insan aracın bozuk olduğunu sanıyor.
Birincisi ve en can sıkıcısı: fare tekerleği çalışmıyor. tmux'ta fare desteği varsayılan olarak kapalı, yukarı kaydırmak için Ctrl+b sonra köşeli parantez ile kaydırma moduna giriyorsun, ok tuşlarıyla geziyorsun, q ile çıkıyorsun. Ajanın ürettiği uzun çıktıyı okumaya çalışırken ilk takılacağın yer burası. Kalıcı çözüm fareyi açmak.
# ~/.tmux.conf dosyasına ekle
set -g mouse on
# Açık oturumda hemen uygulamak için
tmux source-file ~/.tmux.confİkincisi: bölme tuşları sezgiye ters. Yüzde işareti ekranı yan yana ikiye ayırıyor, çift tırnak alt alta. tmux'ın kendi dokümanında bunlara yatay ve dikey bölme deniyor ama isimler bölmelerin dizilişini değil, ayıran çizginin yönünü anlatıyor. Ezberlemenin kısa yolu yok, ikisini de bir kere dene ve hangisinin ne yaptığını gör.
Üçüncüsü: Ctrl+b bazı programlarla çakışıyor. Emacs ve bazı terminal araçları o kombinasyonu kendileri kullanıyor. tmux ön ek tuşunu değiştirmene izin veriyor, ayar dosyasındaki prefix seçeneğiyle. Çakışma yaşamıyorsan dokunma, varsayılan iyi bir seçim.
DOA: Yapay Zeka ve Otomasyon
Buradaki araçları tek başına kurmak bir şey, onlarla gerçekten üretmeye başlamak başka bir şey. Toplulukta hem bu araçları günlük kullananlar var hem de sıfırdan sistem kuranlar.
İşinde gerçekten çalışan bir sistem kurmak istiyorsan 10 dakika konuşalım; ne yapmaya çalıştığına bakıp sana uygun yolu söyleyeyim. Ücretsiz, satış konuşması değil.
10 dakikalık görüşme alBunu tek başına değil, aynı işi yapanlarla birlikte öğrenmek istiyorsan topluluk her zaman açık:
Topluluğa katılBu bağlantı bir ortaklık (affiliate) bağlantısıdır.