Linux’ta GNU Screen Komutlarına Tam Kılavuz
GNU Screen, tek bir terminal penceresinden birden fazla kabuk oturumu oluşturmanıza, yönetmenize ve kalıcı hale getirmenize olanak tanıyan bir terminal çoklayıcısıdır. Bir Screen oturumundan ayrıldığınızda, içinde çalışan her işlem yürütülmeye devam eder — SSH bağlantı kesintilerinden, ağ düşmelerinden ve terminal kapanmalarından etkilenmez — ve yeniden bağlandığınız anda tamamen erişilebilir durumda olur.
SSH üzerinden uzak sunucuları yöneten herkes için bu tek özellik, operasyonel risklerin tamamını ortadan kaldırır: artık kesilen bir bağlantı, çalışan bir veritabanı geçişini, saatler süren bir derleme işini veya canlı bir log izleme sürecini sonlandırmaz.
GNU Screen’in Modern Linux Yönetiminde Neden Hâlâ Geçerli Olduğu
tmux gibi araçlar popülerlik kazanmış olsa da Screen, neredeyse tüm kurumsal Linux dağıtımlarında ve minimal sunucu imajlarında varsayılan ya da varsayılana yakın bir paket olarak gelir. Bare-metal bir makineye veya yeni sağlanmış bir VPS Hosting örneğine SSH ile bağlandığınızda, Screen neredeyse her zaman ek kurulum gerektirmeksizin kullanılabilir durumdadır. Düşük bellek kullanımı ve POSIX uyumluluğu, onu kısıtlı veya kilitli ortamlarda pragmatik bir tercih haline getirir.
Temel yeteneklere genel bakış:
- Oturum kalıcılığı: İşlemler terminal bağlantısı kesilmesinden, SSH zaman aşımından ve istemci taraflı çökmelerden etkilenmez
- Pencere çoklama: Tek bir oturum içinde birden fazla bağımsız kabuk penceresi
- Oturum paylaşımı: İki kullanıcı, iş birliğiyle hata ayıklama için aynı oturuma eş zamanlı olarak bağlanabilir
- Seri konsol erişimi: Screen, bant dışı sunucu yönetimi için doğrudan `/dev/ttyS*` cihazlarına bağlanabilir
- Betiklenebilir başlangıç: `.screenrc` yapılandırma dosyası, başlatma sırasında tamamen otomatik çok pencereli ortamlar oluşturulmasını sağlar
GNU Screen ve tmux: Doğru Çoklayıcıyı Seçmek
Her iki araç da aynı temel sorunu çözer; ancak farklı tasarım felsefelerine sahiptir. Aşağıdaki tablo, üretim ortamlarında önem taşıyan farklılıkları kapsamaktadır.
| Özellik | GNU Screen | tmux |
|---|
| — | — | — |
|---|
| Varsayılan kullanılabilirlik | Çoğu dağıtımda önceden yüklü | Açık kurulum gerektirir |
|---|
| Yapılandırma dosyası | `~/.screenrc` | `~/.tmux.conf` |
|---|
| Bölme ayırma (yatay/dikey) | Sınırlı (yalnızca bölgeler aracılığıyla dikey) | Tam, esnek bölme ayırma |
|---|
| Oturum paylaşımı | Yerel çok bağlantı | Yerel çok bağlantı |
|---|
| Betik yazma / otomasyon | `screen -X` komut enjeksiyonu | `tmux send-keys`, zengin API |
|---|
| Bellek kullanımı | Çok düşük | Düşük |
|---|
| Seri cihaz desteği | Evet (`screen /dev/ttyS0`) | Hayır |
|---|
| Durum çubuğu özelleştirmesi | Orta düzey (hardstatus) | Oldukça esnek |
|---|
| Kopyalama modu | vi tarzı | vi veya emacs tarzı |
|---|
| Eklenti ekosistemi | Yok | Aktif (TPM) |
|---|
| İdeal kullanım senaryosu | Minimal sunucular, seri konsollar, eski ortamlar | Geliştirici iş istasyonları, karmaşık düzenler |
|---|
Pratik rehberlik: Uzun süreli arka plan işleri çalıştıran başsız bir Dedicated Server üzerinde, Screen’in sadeliği ve evrensel kullanılabilirliği onu daha az sürtüşmeli bir seçenek haline getirir. Bölünmüş bölmelere ve zengin bir durum çubuğuna ihtiyaç duyan bir geliştirici için ise tmux daha iyi bir tercih olacaktır.
GNU Screen Kurulumu
Screen, çoğu dağıtımda önceden yüklü olarak gelir. Şu komutla doğrulayın:
“`bash
screen –version
“`
Mevcut değilse, uygun paket yöneticisini kullanarak kurun:
Debian / Ubuntu:
“`bash
sudo apt-get update && sudo apt-get install screen
“`
CentOS / RHEL 7:
“`bash
sudo yum install screen
“`
CentOS Stream / RHEL 8+ / AlmaLinux / Rocky Linux:
“`bash
sudo dnf install screen
“`
Fedora:
“`bash
sudo dnf install screen
“`
Arch Linux:
“`bash
sudo pacman -S screen
“`
Alpine Linux (kapsayıcılarda yaygın):
“`bash
apk add screen
“`
Kurulumun ardından herhangi bir daemon veya servis gerekmez. Screen tamamen kullanıcı alanı süreci olarak çalışır.
Screen Oturumu Başlatma
Temel Oturum
“`bash
screen
“`
Bu sizi standart bir kabukla yeni bir oturuma bırakır. Screen’in komut önekini kullanana kadar arayüz normal bir terminalden ayırt edilemez.
Adlandırılmış Oturum (Önerilen)
“`bash
screen -S session_name
“`
Üretim ortamında oturumlarınızı her zaman adlandırın. Adlandırılmamış oturumlar yalnızca PID’leriyle tanımlanır; bu da birden fazla oturum çalışırken yeniden bağlanmayı hataya açık hale getirir.
Adlandırma kuralı ipucu: İş yükünü yansıtan açıklayıcı isimler kullanın — `screen -S db-migration`, `screen -S log-monitor`, `screen -S build-php82`. Saatler sonra bir sunucuya geri döndüğünüzde bu alışkanlık büyük kolaylık sağlar.
Oturum Başlatma ve Hemen Komut Çalıştırma
“`bash
screen -S backup-job bash -c 'rsync -avz /data/ user@remote:/backup/ && echo DONE'
“`
Komut tamamlandıktan sonra bile oturum devam eder; bu sayede çıktıyı daha sonra inceleyebilirsiniz.
Ayrılmış Modda Oturum Başlatma
“`bash
screen -dmS headless-job ./long_running_script.sh
“`
`-dm` bayrakları oturumu oluşturur ve hemen ayırır. Bu, cron veya dağıtım betiklerinden arka plan işleri başlatmak için doğru kalıptır — süreç, etkileşimli bir terminal gerektirmeksizin adlandırılmış, kurtarılabilir bir Screen oturumu içinde çalışır.
Komut Öneki: Ctrl+A’yı Anlamak
Her Screen klavye kısayolu kaçış dizisi `Ctrl+A` ile başlar. Bu tuş vuruşu, Screen’e bir sonraki karakterin çalışan programa gönderilecek bir girdi değil, bir komut olduğunu bildirir. Bireysel kısayolları ezberlemeden önce bu modeli anlamak şarttır.
Screen içinde çalıştırdığınız bir program kendisi de `Ctrl+A` kullanıyorsa (örneğin bazı metin editörleri veya `readline` kütüphanesi), iç programa gerçek bir `Ctrl+A` göndermek için `Ctrl+A` tuşuna iki kez basabilirsiniz (`Ctrl+A, Ctrl+A`).
Oturumlardan Ayrılma ve Yeniden Bağlanma
Çalışan Bir Oturumdan Ayrılma
“`
Ctrl+A, D
“`
Oturum arka planda çalışmaya devam eder. Üst kabuğa geri dönersiniz. Oturum içindeki hiçbir süreç kesintiye uğramaz.
Tüm Oturumları Listeleme
“`bash
screen -ls
“`
Örnek çıktı:
“`
There are screens on:
14231.db-migration (Detached)
14089.log-monitor (Attached)
13901.build-php82 (Detached)
3 Sockets in /var/run/screen/S-deploy.
“`
`Attached` durumu, başka bir terminalin o anda o oturuma bağlı olduğu anlamına gelir. `Detached` ise oturumun çalıştığını ancak bağlı terminal olmadığını gösterir.
Belirli Bir Oturuma Yeniden Bağlanma
“`bash
screen -r db-migration
“`
Ya da PID ile:
“`bash
screen -r 14231
“`
Zaten Bağlı Bir Oturuma Zorla Bağlanma
Bir oturum `Attached` olarak görünüyorsa ancak devralmanız gerekiyorsa (örneğin eski bir SSH bağlantısı oturumu kilitli bıraktıysa):
“`bash
screen -d -r log-monitor
“`
`-d` bayrağı, sizi yeniden bağlamadan önce diğer bağlantıyı zorla ayırır. Bu, önceki bir SSH oturumunun temiz bir şekilde ayrılmadan kapandığı durumlarda kritik bir kurtarma tekniğidir.
Çok Bağlantı: İki Kullanıcı Aynı Oturumda
“`bash
screen -x session_name
“`
Her iki terminal de aynı çıktıyı gerçek zamanlı olarak görür. Bu, çift hata ayıklama veya bir meslektaşla rehberli sunucu incelemesi için son derece değerlidir — her iki taraf da aynı kabuğu gözlemleyebilir ve etkileşime girebilir.
Oturum İçinde Pencereleri Yönetme
Tek bir Screen oturumu sınırsız sayıda pencere içerebilir. Her pencere bağımsız bir kabuk (veya süreç) olarak çalışır.
Yeni Pencere Oluşturma
“`
Ctrl+A, C
“`
Pencereler Arasında Gezinme
| Kısayol | İşlem |
|---|
| — | — |
|---|
| `Ctrl+A, N` | Sonraki pencere |
|---|
| `Ctrl+A, P` | Önceki pencere |
|---|
| `Ctrl+A, 0–9` | Numaraya göre doğrudan pencereye atla |
|---|
| `Ctrl+A, "` | Tüm pencerelerin etkileşimli listesi |
|---|
| `Ctrl+A, '` | Pencere numarası veya adı girmek için istem |
|---|
Pencereyi Yeniden Adlandırma
“`
Ctrl+A, A
“`
Yeni adı yazın ve Enter’a basın. Anlamlı pencere adları hardstatus çubuğunda görüntülenir; bu da çok pencereli oturumlarda gezinmeyi çok daha hızlı hale getirir.
Pencereyi Kapatma
Pencerenin kabuğuna `exit` yazın veya `Ctrl+D` tuşuna basın. Bir oturumdaki son pencere kapatıldığında oturum sona erer.
Ekranı Bölgelere Ayırma
Screen, terminali birden fazla görünür bölgeye bölmeyi destekler; her bölge aynı anda farklı bir pencere görüntüler.
Yatay Bölme (üst/alt)
“`
Ctrl+A, S
“`
Dikey Bölme (sol/sağ)
“`
Ctrl+A, |
“`
Not: Dikey bölme, Screen 4.1.0 veya sonraki sürümlerini gerektirir.
Bölgeler Arasında Geçiş
“`
Ctrl+A, Tab
“`
Bir Bölgeye Pencere Atama
Odağı bir bölgeye taşıdıktan sonra, orada hangi pencerenin görüntüleneceğini seçmek için `Ctrl+A, "` kullanın.
Bölgeyi Kaldırma
“`
Ctrl+A, X (remove current region)
Ctrl+A, Q (remove all regions except current)
“`
Önemli ayrım: Bir bölgeyi kaldırmak, içinde çalışan pencereyi kapatmaz. Pencere çalışmaya devam eder; yalnızca o bölmede görüntülenmesi durdurulur.
Kopyalama ve Yapıştırma (Geri Kaydırma Modu)
Screen, her pencere için bir geri kaydırma tamponu tutar. Erişmek için:
“`
Ctrl+A, [
“`
Bu, kopyalama moduna girer. Gezinme vi tarzı tuşlarla yapılır:
- `h`, `j`, `k`, `l` — imleci hareket ettir
- `Ctrl+F` / `Ctrl+B` — ileri / geri sayfa çevir
- `/` — ileriye doğru ara
- `?` — geriye doğru ara
- `Space` — seçimin başlangıcını işaretle
- `Space` (tekrar) — sonu işaretle ve tampona kopyala
Kopyalanan metni yapıştırmak için:
“`
Ctrl+A, ]
“`
Varsayılan geri kaydırma tamponu 100 satırdır. Sunucu log izleme için bunu `.screenrc` dosyasında (aşağıda ele alınmıştır) önemli ölçüde artırın.
Screen Oturumunu Kilitleme
“`
Ctrl+A, X
“`
Oturum hemen kilitlenir ve erişime izin vermeden önce Unix kullanıcı parolanızı ister. Hassas bir sunucuya bağlı bir terminalden uzaklaşırken bunu kullanın — SSH bağlantısını kapatıp yeniden bağlanmaktan çok daha hızlıdır.
Bağlanmadan Oturuma Komut Gönderme
`-X` bayrağı, dışarıdan çalışan bir oturuma Screen komutları enjekte etmenizi sağlar:
“`bash
screen -S db-migration -X stuff "tail -f /var/log/mysql/error.logn"
“`
`stuff` komutu, adlandırılmış oturumun aktif penceresine tuş vuruşları gönderir. `n` ise Enter tuşuna basmayı simüle eder. Bu teknik, insan müdahalesi gerektirmeksizin uzun süreli Screen oturumlarıyla etkileşim kurmak için dağıtım otomasyon betiklerinde kullanılır.
Screen’i .screenrc ile Yapılandırma
`~/.screenrc` dosyası başlangıçta okunur ve Screen’in varsayılan davranışını denetler. İyi hazırlanmış bir `.screenrc`, Screen’i temel bir çoklayıcıdan gerçek anlamda ergonomik bir ortama dönüştürür.
Oluşturun veya düzenleyin:
“`bash
nano ~/.screenrc
“`
Önerilen Üretim .screenrc Yapılandırması
“`bash
Disable the startup message
startup_message off
Set scrollback buffer to 10,000 lines (critical for log monitoring)
defscrollback 10000
Enable UTF-8
defutf8 on
Set default shell
shell -$SHELL
Visual bell instead of audible
vbell on
Hardstatus bar: shows hostname, window list, and current time
hardstatus on
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'
Bind F2 to create a new window
bindkey -k k2 screen
Change escape key to Ctrl+B (useful if Ctrl+A conflicts with other tools)
escape ^Bb
Auto-detach on hangup signal (critical for SSH session drops)
autodetach on
Disable flow control (prevents Ctrl+S from freezing the terminal)
defflow off
“`
`autodetach on` yönergesi SSH kullanımı için vazgeçilmezdir. Bu olmadan, SSH bağlantınız beklenmedik şekilde kesilirse (`Ctrl+A, D` tuşuna basmak yerine), Screen oturumu ayırmak yerine sonlandırabilir. `autodetach on` ile bir SIGHUP sinyali (SSH bağlantısı kesildiğinde gönderilir) oturum sonlandırma yerine temiz bir ayrılmayı tetikler.
`defflow off`, yanlışlıkla `Ctrl+S` tuşuna basıp terminalin donmuş gibi görünmesi şeklindeki yaygın can sıkıntısını önler. Pek çok yönetici, aslında yalnızca XON/XOFF akış denetimi duraklamasında olan “donmuş” bir terminali gidermek için dakikalar harcar.
Pratik Üretim Kullanım Senaryoları
Veritabanı Geçişini Güvenli Şekilde Çalıştırma
“`bash
screen -S db-migrate
Inside the session:
php artisan migrate –force 2>&1 | tee /var/log/migration-$(date +%F).log
Detach: Ctrl+A, D
Reattach later to check progress:
screen -r db-migrate
“`
SSH bağlantısı geçiş ortasında kesilirse süreç devam eder. Yeniden bağlandığınızda oturumun hâlâ çalışıyor ya da tamamlanmış olduğunu, tam çıktının log dosyasında ve geri kaydırma tamponunda korunduğunu görürsünüz.
Birden Fazla Log Dosyasını Eş Zamanlı İzleme
“`bash
screen -S monitoring
Window 0: nginx access log
tail -f /var/log/nginx/access.log
Ctrl+A, C — new window
Window 1: application error log
tail -f /var/log/app/error.log
Ctrl+A, C — new window
Window 2: system messages
journalctl -f
“`
Hangi logun etkinlik ürettiğini görmek için `Ctrl+A, "` ile pencereler arasında geçiş yapın.
Screen ile Otomatik Dağıtım Betiği
“`bash
#!/bin/bash
screen -dmS deploy bash -c '
git pull origin main &&
composer install –no-dev &&
php artisan config:cache &&
systemctl reload php8.2-fpm &&
echo "Deployment complete at $(date)" >> /var/log/deploy.log
'
echo "Deployment started in background screen session 'deploy'"
echo "Monitor with: screen -r deploy"
“`
Bu kalıp, tek bir yönetim kabuğundan birden fazla uygulama dağıtımını yönetiyor olabileceğiniz cPanel’li VPS üzerinde özellikle kullanışlıdır.
Seri Konsol Erişimi
“`bash
screen /dev/ttyS0 115200
“`
Screen aynı zamanda bir seri terminal emülatörü olarak da işlev görür. Bu, minicom veya picocom gerektirmeksizin seri bağlantı üzerinden fiziksel bir sunucunun, ağ anahtarının veya gömülü cihazın konsoluna erişmek için standart tekniktir.
Yaygın Tuzaklar ve Bunlardan Kaçınma Yolları
İç içe Screen oturumları: A Makinesi’ndeki bir Screen oturumundan B Makinesi’ne SSH ile bağlanır ve orada Screen başlatırsanız, artık iki katmanlı `Ctrl+A` işlemeniz olur. İç Screen oturumu, dış oturum görmeden önce `Ctrl+A` tuşunu yakalar. Dış oturuma `Ctrl+A` göndermek için `Ctrl+A, Ctrl+A` tuşuna basın. Karışıklığı önlemek için iç oturumun kaçış tuşunu, `escape ^Bb` kullanarak kendi `.screenrc` dosyasında değiştirin.
Ölü oturumların temizlenmemesi: Screen çökerse veya ana makine düzgün şekilde yeniden başlatılmazsa, `/var/run/screen/` veya `~/.screen/` dizinlerinde soket dosyaları kalabilir ve oturumlar `Dead` olarak görünebilir. Şu komutla temizleyin:
“`bash
screen -wipe
“`
Root ve kullanıcı oturum sahipliği: Root olarak başlatılan bir Screen oturumuna root olmayan bir kullanıcı yeniden bağlanamaz; tersi de geçerlidir. Bir Screen oturumu içinde `sudo su` yapıp ardından ayrılırsanız, root olarak veya `sudo screen -r` aracılığıyla yeniden bağlanın.
`TERM` değişkeni uyumsuzluğu: Screen içindeki bazı uygulamalar, `TERM` değeri `xterm-256color` yerine `screen` veya `screen-256color` olarak ayarlandığı için hatalı davranabilir. Bir TUI uygulaması yanlış görüntüleniyorsa `echo $TERM` ile kontrol edin ve gerekirse `.screenrc` dosyasında `term xterm-256color` ile geçersiz kılın.
Geri kaydırma tamponu tükenmesi: Varsayılan 100 satırlık geri kaydırma tamponu, ciddi herhangi bir log izleme için yetersizdir. Aktif yönetim için kullanılan sunucularda `.screenrc` dosyasında her zaman `defscrollback 10000` veya daha yüksek bir değer ayarlayın.
Hızlı Başvuru: Temel Screen Komutları
| İşlem | Komut / Kısayol |
|---|
| — | — |
|---|
| Yeni oturum başlat | `screen` |
|---|
| Adlandırılmış oturum başlat | `screen -S name` |
|---|
| Ayrılmış oturum başlat | `screen -dmS name` |
|---|
| Oturumları listele | `screen -ls` |
|---|
| Ada göre yeniden bağlan | `screen -r name` |
|---|
| Zorla yeniden bağlan | `screen -d -r name` |
|---|
| Çok bağlantı | `screen -x name` |
|---|
| Ayrıl | `Ctrl+A, D` |
|---|
| Yeni pencere | `Ctrl+A, C` |
|---|
| Sonraki pencere | `Ctrl+A, N` |
|---|
| Önceki pencere | `Ctrl+A, P` |
|---|
| Pencere listesi | `Ctrl+A, "` |
|---|
| Pencereyi yeniden adlandır | `Ctrl+A, A` |
|---|
| Yatay böl | `Ctrl+A, S` |
|---|
| Dikey böl | `Ctrl+A, | ` |
|---|
| Bölgeler arasında geçiş | `Ctrl+A, Tab` |
|---|
| Kopyalama/kaydırma moduna gir | `Ctrl+A, [` |
|---|
| Tamponu yapıştır | `Ctrl+A, ]` |
|---|
| Oturumu kilitle | `Ctrl+A, X` |
|---|
| Mevcut pencereyi kapat | `Ctrl+A, K` |
|---|
| Tüm oturumu sonlandır | `Ctrl+A, ` |
|---|
| Oturuma komut gönder | `screen -S name -X stuff "cmdn"` |
|---|
| Ölü oturumları temizle | `screen -wipe` |
|---|
Dağıtım Bağlamı: Yönetilen Hosting Ortamlarında Screen
Screen, kabuk düzeyinde çalışır; bu da onu SSH erişiminizin bulunduğu her Linux ortamıyla uyumlu kılar. Buna bare-metal sunucular, Dedicated Server‘lar ve standart VPS Hosting örnekleri dahildir. SSH erişiminin kısıtlı veya mevcut olmadığı paylaşımlı hosting ortamlarında kullanılamaz.
GPU hızlandırmalı model çıkarımı, büyük veri kümesi ön işleme veya uzun süreli toplu işler gibi kalıcı arka plan işleme gerektiren iş yükleri için Screen’i bir GPU Hosting ortamıyla birleştirmek, saatler süren işleri güvenilir biçimde yönetmek için hem hesaplama kaynaklarını hem de oturum kalıcılığını sağlar.
Altyapınız arka plan işlemeyle birlikte web’e yönelik hizmetler de içeriyorsa, Screen tarafından yönetilen arka uç işlerini genel uç noktalarınızdaki düzgün şekilde güvenli hale getirilmiş SSL Sertifikaları ile eşleştirmek, tüm yığının — hem görünür uygulama katmanının hem de yönetim arka ucunun — uygun güvenlik denetimleriyle çalışmasını sağlar.
Karar Matrisi: Screen Ne Zaman Kullanılır
Screen’i şu durumlarda kullanın:
- Yalnızca Screen’in mevcut olduğu bir sunucuda oturum kalıcılığına ihtiyaç duyduğunuzda
- Seri konsola veya gömülü cihaza erişirken
- Tek bir uzun süreli işlem çalıştırıyorsanız ve bölünmüş bölmelere ihtiyacınız yoksa
- Minimal Alpine veya BusyBox tabanlı bir sistemdeyseniz
- Bir oturumu başka bir yöneticiyle gerçek zamanlı paylaşmanız gerekiyorsa
Bunun yerine tmux’u şu durumlarda değerlendirin:
- Esnek yatay ve dikey bölme ayırma gerekiyorsa
- Durum çubuğu geliştirmeleri için bir eklenti ekosistemi istiyorsanız
- Karmaşık düzenlerle bir geliştirici iş istasyonu ortamı oluşturuyorsanız
- Ekibiniz tmux yapılandırma yönetimini standart olarak benimsemişse
İkisini de kullanmayın (bunun yerine systemd veya supervisor kullanın):
- Amaç yalnızca yeniden başlatmalardan sağ çıkması gereken bir arka plan servisi çalıştırmaksa
- Çalışan sürece etkileşimli erişime ihtiyaç duymuyorsanız
- Sürecin hata durumunda otomatik olarak yeniden başlaması gerekiyorsa
Teknik Temel Kontrol Listesi
Screen’i bir üretim ortamında kullanmadan önce aşağıdakileri doğrulayın:
- `autodetach on` `~/.screenrc` dosyasında mevcut — bu olmadan SSH kesintileri oturumları sonlandırabilir
- `defscrollback` log yoğun iş yükleri için en az 5000 satıra ayarlanmış
- Yanlışlıkla `Ctrl+S` donmalarını önlemek için `defflow off` ayarlanmış
- Tüm uzun süreli oturumlar adlandırılmış (`-S flag`) — yalnızca PID ile tanımlamaya asla güvenmeyin
- Eski bağlı oturumlar için `screen -d -r` kurtarma komutunu biliyorsunuz
- Ölü oturum soketleri periyodik olarak `screen -wipe` ile temizleniyor
- Birden fazla kullanıcıyla çalışıyorsanız root/kullanıcı oturum sahipliği sınırını anlıyorsunuz
- TUI uygulamaları Screen içinde yanlış görüntüleniyorsa `TERM` değişkeni doğrulanıyor
- Tamamen otomatik arka plan işleri için `screen -dmS` kullanılıyor; `nohup` veya bare `&` değil — bu size kurtarılabilir, incelenebilir bir oturum sağlar
SSS
GNU Screen sunucu yeniden başlatmasından sağ çıkar mı?
Hayır. Screen oturumları bellekte süreç olarak tutulur. Tam bir sunucu yeniden başlatması tüm Screen oturumlarını ve alt süreçlerini sonlandırır. Yeniden başlatmalardan sağ çıkması gereken süreçler için systemd birimleri veya Supervisor gibi bir süreç denetçisi kullanın. Screen, yeniden başlatmalar boyunca değil, bağlantı kesintileri boyunca etkileşimli kalıcılık için doğru araçtır.
`screen -r` ile `screen -x` arasındaki fark nedir?
`screen -r` ayrılmış bir oturuma yeniden bağlanır — oturum başka bir yerde zaten bağlıysa başarısız olur. `screen -x` ise mevcut bağlantı durumundan bağımsız olarak bir oturuma bağlanır; bu da iki terminalin aynı oturumu eş zamanlı paylaşmasına olanak tanır. İş birliğiyle hata ayıklama için `-x`; standart yeniden bağlanma için `-r` kullanın.
Screen penceresi içinde nasıl yukarı kaydırırım?
`Ctrl+A, [` ile kopyalama moduna girin, ardından ok tuşlarını, `Page Up`/`Page Down` tuşlarını veya vi tarzı gezinmeyi (`Ctrl+F`, `Ctrl+B`) kullanın. Kopyalama modundan çıkmak için `Escape` veya `q` tuşuna basın. İhtiyaç duyduğunuz geçmişi saklamak için `.screenrc` dosyasındaki `defscrollback` değerinin yeterince yüksek ayarlandığından emin olun.
Screen root ayrıcalıkları olmadan kullanılabilir mi?
Evet. Screen tamamen çağıran kullanıcı olarak çalışır. Oturum oluşturmak, bağlanmak veya yönetmek için root ayrıcalıkları gerekmez. Soket dosyaları kullanıcıya özel bir dizinde saklanır (genellikle `/var/run/screen/S-username/`). Tek istisna, Screen’in kurulu olmaması durumudur — kurulum, genellikle root veya sudo gerektiren paket yöneticisi erişimi gerektirir.
Screen oturumum kimse bağlı değilken neden “Attached” (Bağlı) olarak görünüyor?
Bu durum genellikle bir SSH bağlantısının temiz bir SIGHUP göndermeden kesilmesi sonucu oluşur — örneğin açık bir çıkış yerine ağ zaman aşımı nedeniyle. Screen bağlantı kesme sinyalini hiç almadığı için oturum `Attached` durumunu korur. Hayalet bağlantıyı zorla ayırmak ve temiz bir şekilde yeniden bağlanmak için `screen -d -r session_name` kullanın.
