Ghidul Complet al Comenzilor GNU Screen în Linux
GNU Screen este un multiplexor de terminal care vă permite să creați, să gestionați și să persistați mai multe sesiuni shell dintr-o singură fereastră de terminal. Când vă deconectați de la o sesiune Screen, fiecare proces care rulează în interiorul acesteia continuă să se execute — supraviețuind deconectărilor SSH, întreruperilor de rețea și închiderilor de terminal — și rămâne pe deplin accesibil în momentul în care vă reconectați.
Pentru oricine gestionează servere la distanță prin SSH, această singură capabilitate elimină o întreagă categorie de riscuri operaționale: o conexiune întreruptă nu mai oprește o migrare de baze de date în curs, un job de compilare de mai multe ore sau un proces de monitorizare a jurnalelor în timp real.
De ce GNU Screen rămâne relevant în administrarea modernă Linux
Instrumente precum tmux au câștigat popularitate, dar Screen este livrat ca pachet implicit sau aproape implicit pe practic orice distribuție Linux enterprise și imagine minimală de server. Când vă conectați prin SSH la o mașină bare-metal sau la o instanță VPS Hosting nou provizionată, Screen este aproape întotdeauna disponibil fără nicio instalare suplimentară. Amprenta sa redusă de memorie și conformitatea POSIX îl fac alegerea pragmatică în medii restrictive sau blocate.
Capabilități principale dintr-o privire:
- Persistența sesiunii: Procesele supraviețuiesc deconectării terminalului, timeout-ului SSH și blocărilor pe partea clientului
- Multiplexarea ferestrelor: Mai multe ferestre shell independente în cadrul unei singure sesiuni
- Partajarea sesiunii: Doi utilizatori se pot conecta simultan la aceeași sesiune pentru depanare colaborativă
- Acces la consola serială: Screen se poate conecta direct la dispozitive `/dev/ttyS*` pentru gestionarea out-of-band a serverului
- Pornire scriptabilă: Fișierul de configurare `.screenrc` permite medii multi-fereastră complet automatizate la lansare
GNU Screen vs. tmux: Alegerea multiplexorului potrivit
Ambele instrumente rezolvă aceeași problemă de bază, dar cu filozofii de design diferite. Tabelul de mai jos acoperă distincțiile care contează în mediile de producție.
| Funcționalitate | GNU Screen | tmux |
|---|
| — | — | — |
|---|
| Disponibilitate implicită | Pre-instalat pe majoritatea distribuțiilor | Necesită instalare explicită |
|---|
| Fișier de configurare | `~/.screenrc` | `~/.tmux.conf` |
|---|
| Împărțirea panourilor (orizontal/vertical) | Limitată (doar vertical prin regiuni) | Împărțire completă și flexibilă a panourilor |
|---|
| Partajarea sesiunii | Multi-atașare nativă | Multi-atașare nativă |
|---|
| Scripting / automatizare | Injectare comenzi `screen -X` | `tmux send-keys`, API bogat |
|---|
| Amprentă de memorie | Foarte redusă | Redusă |
|---|
| Suport dispozitive seriale | Da (`screen /dev/ttyS0`) | Nu |
|---|
| Personalizarea barei de stare | Moderată (hardstatus) | Foarte flexibilă |
|---|
| Modul de copiere | Stil vi | Stil vi sau emacs |
|---|
| Ecosistem de plugin-uri | Niciunul | Activ (TPM) |
|---|
| Caz de utilizare ideal | Servere minimale, console seriale, medii legacy | Stații de lucru pentru dezvoltatori, layout-uri complexe |
|---|
Îndrumare practică: Pe un Server Dedicat headless care rulează job-uri de fundal pe termen lung, simplitatea și disponibilitatea universală a Screen îl fac alegerea cu mai puțină fricțiune. Pentru un dezvoltator care are nevoie de panouri împărțite și o bară de stare bogată, tmux câștigă.
Instalarea GNU Screen
Screen este pre-instalat pe majoritatea distribuțiilor. Verificați cu:
“`bash
screen –version
“`
Dacă lipsește, instalați-l folosind managerul de pachete corespunzător:
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 (frecvent în containere):
“`bash
apk add screen
“`
După instalare, nu este necesar niciun daemon sau serviciu. Screen funcționează în întregime ca un proces în spațiul utilizatorului.
Pornirea unei sesiuni Screen
Sesiune de bază
“`bash
screen
“`
Aceasta vă plasează într-o nouă sesiune cu un shell standard. Interfața este indistinctă față de un terminal normal până când utilizați prefixul de comandă al Screen.
Sesiune cu nume (Recomandat)
“`bash
screen -S session_name
“`
Denumiți întotdeauna sesiunile în producție. Sesiunile fără nume sunt identificate doar prin PID-ul lor, ceea ce face reatașarea predispusă la erori atunci când rulează mai multe sesiuni.
Sfat privind convenția de denumire: Folosiți nume descriptive care reflectă volumul de lucru — `screen -S db-migration`, `screen -S log-monitor`, `screen -S build-php82`. Acest lucru aduce beneficii când reveniți la un server după ore de absență.
Pornirea unei sesiuni și rularea imediată a unei comenzi
“`bash
screen -S backup-job bash -c 'rsync -avz /data/ user@remote:/backup/ && echo DONE'
“`
Sesiunea persistă chiar și după finalizarea comenzii, permițându-vă să inspectați rezultatul ulterior.
Pornirea unei sesiuni în modul detașat
“`bash
screen -dmS headless-job ./long_running_script.sh
“`
Flag-urile `-dm` creează sesiunea și o detașează imediat. Acesta este modelul corect pentru lansarea job-urilor de fundal din cron sau scripturi de deployment — procesul rulează în interiorul unei sesiuni Screen cu nume, recuperabilă, fără a necesita un terminal interactiv.
Prefixul de comandă: Înțelegerea Ctrl+A
Fiecare comandă rapidă de tastatură Screen începe cu secvența de escape `Ctrl+A`. Această apăsare de taste îi spune Screen că următorul caracter este o comandă, nu o intrare pentru programul care rulează. Înțelegerea acestui model este esențială înainte de a memora comenzile rapide individuale.
Dacă rulați un program în Screen care folosește el însuși `Ctrl+A` (de exemplu, unii editori de text sau biblioteca `readline`), puteți trimite un `Ctrl+A` literal programului interior apăsând `Ctrl+A` de două ori (`Ctrl+A, Ctrl+A`).
Detașarea și reatașarea sesiunilor
Detașarea de la o sesiune activă
“`
Ctrl+A, D
“`
Sesiunea continuă să ruleze în fundal. Sunteți returnat la shell-ul părinte. Niciun proces din interiorul sesiunii nu este întrerupt.
Listarea tuturor sesiunilor
“`bash
screen -ls
“`
Exemplu de rezultat:
“`
There are screens on:
14231.db-migration (Detached)
14089.log-monitor (Attached)
13901.build-php82 (Detached)
3 Sockets in /var/run/screen/S-deploy.
“`
Starea `Attached` înseamnă că un alt terminal este conectat în prezent la acea sesiune. `Detached` înseamnă că rulează, dar niciun terminal nu este conectat.
Reatașarea la o sesiune specifică
“`bash
screen -r db-migration
“`
Sau prin PID:
“`bash
screen -r 14231
“`
Atașarea forțată la o sesiune deja atașată
Dacă o sesiune afișează `Attached` dar trebuie să o preluați (de exemplu, după ce o conexiune SSH veche a lăsat-o blocată):
“`bash
screen -d -r log-monitor
“`
Flag-ul `-d` detașează forțat cealaltă conexiune înainte de a vă reatașa. Aceasta este o tehnică critică de recuperare când o sesiune SSH anterioară a murit fără a se detașa curat.
Multi-atașare: Doi utilizatori pe aceeași sesiune
“`bash
screen -x session_name
“`
Ambele terminale văd rezultate identice în timp real. Acest lucru este de neprețuit pentru depanarea în pereche sau pentru ghidarea unui coleg prin server — ambele părți observă și pot interacționa cu același shell.
Gestionarea ferestrelor în cadrul unei sesiuni
O singură sesiune Screen poate conține un număr nelimitat de ferestre. Fiecare fereastră este un shell independent (sau proces).
Crearea unei ferestre noi
“`
Ctrl+A, C
“`
Navigarea între ferestre
| Comandă rapidă | Acțiune |
|---|
| — | — |
|---|
| `Ctrl+A, N` | Fereastra următoare |
|---|
| `Ctrl+A, P` | Fereastra anterioară |
|---|
| `Ctrl+A, 0–9` | Salt direct la fereastră după număr |
|---|
| `Ctrl+A, "` | Listă interactivă a tuturor ferestrelor |
|---|
| `Ctrl+A, '` | Prompt pentru introducerea numărului sau numelui ferestrei |
|---|
Redenumirea unei ferestre
“`
Ctrl+A, A
“`
Tastați noul nume și apăsați Enter. Numele semnificative ale ferestrelor sunt afișate în bara hardstatus, făcând navigarea mult mai rapidă în sesiunile cu multe ferestre.
Închiderea unei ferestre
Tastați `exit` sau apăsați `Ctrl+D` în shell-ul ferestrei. Când ultima fereastră dintr-o sesiune este închisă, sesiunea se termină.
Împărțirea ecranului în regiuni
Screen suportă împărțirea terminalului în mai multe regiuni vizibile, fiecare afișând simultan o fereastră diferită.
Împărțire orizontală (sus/jos)
“`
Ctrl+A, S
“`
Împărțire verticală (stânga/dreapta)
“`
Ctrl+A, |
“`
Notă: Împărțirea verticală necesită Screen 4.1.0 sau o versiune ulterioară.
Mutarea între regiuni
“`
Ctrl+A, Tab
“`
Atribuirea unei ferestre unei regiuni
După mutarea focusului într-o regiune, folosiți `Ctrl+A, "` pentru a selecta ce fereastră să afișați acolo.
Eliminarea unei regiuni
“`
Ctrl+A, X (remove current region)
Ctrl+A, Q (remove all regions except current)
“`
Distincție importantă: Eliminarea unei regiuni nu închide fereastra care rulează în interiorul ei. Fereastra continuă să ruleze; pur și simplu nu o mai afișați în acea împărțire.
Copiere și lipire (modul de derulare înapoi)
Screen menține un buffer de derulare înapoi pentru fiecare fereastră. Pentru a-l accesa:
“`
Ctrl+A, [
“`
Aceasta intră în modul de copiere. Navigarea folosește taste în stil vi:
- `h`, `j`, `k`, `l` — mutare cursor
- `Ctrl+F` / `Ctrl+B` — pagină înainte / înapoi
- `/` — căutare înainte
- `?` — căutare înapoi
- `Space` — marcarea începutului selecției
- `Space` (din nou) — marcarea sfârșitului și copierea în buffer
Pentru a lipi textul copiat:
“`
Ctrl+A, ]
“`
Buffer-ul implicit de derulare înapoi este de 100 de linii. Pentru monitorizarea jurnalelor de server, măriți semnificativ această valoare în `.screenrc` (tratat mai jos).
Blocarea unei sesiuni Screen
“`
Ctrl+A, X
“`
Sesiunea se blochează imediat și solicită parola utilizatorului Unix înainte de a permite accesul. Folosiți aceasta când vă îndepărtați de un terminal conectat la un server sensibil — este mai rapid decât închiderea conexiunii SSH și reatașarea.
Trimiterea comenzilor către o sesiune fără atașare
Flag-ul `-X` vă permite să injectați comenzi Screen într-o sesiune activă din exterior:
“`bash
screen -S db-migration -X stuff "tail -f /var/log/mysql/error.logn"
“`
Comanda `stuff` trimite apăsări de taste ferestrei active a sesiunii cu nume. `n` simulează apăsarea Enter. Această tehnică este folosită în scripturile de automatizare a deployment-ului pentru a interacționa cu sesiunile Screen de lungă durată fără a necesita atașarea umană.
Configurarea Screen cu .screenrc
Fișierul `~/.screenrc` este citit la pornire și controlează comportamentul implicit al Screen. Un `.screenrc` bine conceput transformă Screen dintr-un multiplexor de bază într-un mediu cu adevărat ergonomic.
Creați sau editați-l:
“`bash
nano ~/.screenrc
“`
Configurație .screenrc recomandată pentru producție
“`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
“`
Directiva `autodetach on` este obligatorie pentru utilizarea SSH. Fără ea, dacă conexiunea SSH cade neașteptat (în loc să apăsați `Ctrl+A, D`), Screen poate termina sesiunea în loc să o detașeze. Cu `autodetach on`, un semnal SIGHUP (trimis când SSH se deconectează) declanșează o detașare curată în loc de terminarea sesiunii.
`defflow off` previne frustrarea frecventă de a apăsa accidental `Ctrl+S` și a părea că terminalul s-a blocat. Mulți administratori pierd minute depanând un terminal „blocat” care se află pur și simplu în pauza de control al fluxului XON/XOFF.
Cazuri de utilizare practică în producție
Rularea în siguranță a unei migrări de baze de date
“`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
“`
Dacă conexiunea SSH cade în mijlocul migrării, procesul continuă. Vă reatașați și îl găsiți fie încă în execuție, fie finalizat cu rezultatul complet păstrat în jurnal și în buffer-ul de derulare înapoi.
Monitorizarea simultană a mai multor fișiere jurnal
“`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
“`
Navigați între ferestre cu `Ctrl+A, "` pentru a vedea care jurnal generează activitate.
Script de deployment automatizat cu Screen
“`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"
“`
Acest model este deosebit de util pe un VPS cu cPanel unde puteți gestiona mai multe deployment-uri de aplicații dintr-un singur shell administrativ.
Acces la consola serială
“`bash
screen /dev/ttyS0 115200
“`
Screen funcționează și ca emulator de terminal serial. Aceasta este tehnica standard pentru accesarea consolei unui server fizic, switch de rețea sau dispozitiv embedded printr-o conexiune serială — fără a necesita minicom sau picocom.
Capcane frecvente și cum să le evitați
Sesiuni Screen imbricate: Dacă vă conectați prin SSH dintr-o sesiune Screen pe Mașina A la Mașina B și porniți Screen acolo, aveți acum două straturi de gestionare `Ctrl+A`. Sesiunea Screen interioară captează `Ctrl+A` înainte ca cea exterioară să îl vadă. Pentru a trimite `Ctrl+A` sesiunii exterioare, apăsați `Ctrl+A, Ctrl+A`. Pentru a evita confuzia, schimbați tasta de escape a sesiunii interioare în `.screenrc` folosind `escape ^Bb`.
Sesiunile moarte nu se curăță: Dacă Screen se blochează sau gazda repornește necurat, fișierele socket pot persista în `/var/run/screen/` sau `~/.screen/`, afișând sesiunile ca `Dead`. Curățați-le cu:
“`bash
screen -wipe
“`
Sesiune deținută de root vs. utilizator: O sesiune Screen pornită ca root nu poate fi reatașată de un utilizator non-root și invers. Dacă folosiți `sudo su` în interiorul unei sesiuni Screen și apoi vă detașați, reatașați ca root sau prin `sudo screen -r`.
Nepotrivire variabilă `TERM`: Unele aplicații din interiorul Screen se comportă incorect deoarece `TERM` este setat la `screen` sau `screen-256color` în loc de `xterm-256color`. Dacă o aplicație TUI se redă incorect, verificați cu `echo $TERM` și suprascrieți în `.screenrc` cu `term xterm-256color` dacă este necesar.
Epuizarea buffer-ului de derulare înapoi: Buffer-ul implicit de 100 de linii este inadecvat pentru orice monitorizare serioasă a jurnalelor. Setați întotdeauna `defscrollback 10000` sau mai mult în `.screenrc` pe serverele folosite pentru administrare activă.
Referință rapidă: Comenzi esențiale Screen
| Acțiune | Comandă / Comandă rapidă |
|---|
| — | — |
|---|
| Pornire sesiune nouă | `screen` |
|---|
| Pornire sesiune cu nume | `screen -S name` |
|---|
| Pornire sesiune detașată | `screen -dmS name` |
|---|
| Listare sesiuni | `screen -ls` |
|---|
| Reatașare după nume | `screen -r name` |
|---|
| Reatașare forțată | `screen -d -r name` |
|---|
| Multi-atașare | `screen -x name` |
|---|
| Detașare | `Ctrl+A, D` |
|---|
| Fereastră nouă | `Ctrl+A, C` |
|---|
| Fereastra următoare | `Ctrl+A, N` |
|---|
| Fereastra anterioară | `Ctrl+A, P` |
|---|
| Listă ferestre | `Ctrl+A, "` |
|---|
| Redenumire fereastră | `Ctrl+A, A` |
|---|
| Împărțire orizontală | `Ctrl+A, S` |
|---|
| Împărțire verticală | `Ctrl+A, | ` |
|---|
| Mutare între regiuni | `Ctrl+A, Tab` |
|---|
| Intrare în modul copiere/derulare | `Ctrl+A, [` |
|---|
| Lipire buffer | `Ctrl+A, ]` |
|---|
| Blocare sesiune | `Ctrl+A, X` |
|---|
| Închidere fereastră curentă | `Ctrl+A, K` |
|---|
| Închidere sesiune întreagă | `Ctrl+A, ` |
|---|
| Trimitere comandă către sesiune | `screen -S name -X stuff "cmdn"` |
|---|
| Curățare sesiuni moarte | `screen -wipe` |
|---|
Context de deployment: Screen în medii de hosting gestionat
Screen funcționează la nivel de shell, făcându-l compatibil cu orice mediu Linux unde aveți acces SSH. Aceasta include servere bare-metal, Servere Dedicate și instanțe standard de VPS Hosting. Nu este disponibil în mediile de hosting partajat unde accesul SSH este restricționat sau absent.
Pentru volumele de lucru care implică procesare de fundal persistentă — cum ar fi inferența de modele accelerată GPU, preprocesarea seturilor mari de date sau job-urile batch de lungă durată — combinarea Screen cu un mediu de GPU Hosting vă oferă atât resursele computaționale, cât și persistența sesiunii necesară pentru a gestiona fiabil job-uri de mai multe ore.
Dacă infrastructura dvs. include servicii web alături de procesarea de fundal, asocierea job-urilor backend gestionate prin Screen cu Certificate SSL corect securizate pe endpoint-urile publice asigură că întregul stack — atât stratul de aplicație vizibil, cât și backend-ul administrativ — funcționează cu controale de securitate adecvate.
Matrice de decizie: Când să folosiți Screen
Folosiți Screen când:
- Aveți nevoie de persistența sesiunii pe un server unde este disponibil doar Screen
- Accesați o consolă serială sau un dispozitiv embedded
- Rulați un singur proces de lungă durată și nu aveți nevoie de panouri împărțite
- Vă aflați pe un sistem minimal bazat pe Alpine sau BusyBox
- Trebuie să partajați o sesiune cu un alt administrator în timp real
Luați în considerare tmux în schimb când:
- Aveți nevoie de împărțire flexibilă orizontală și verticală a panourilor
- Doriți un ecosistem de plugin-uri pentru îmbunătățiri ale barei de stare
- Construiți un mediu de stație de lucru pentru dezvoltatori cu layout-uri complexe
- Echipa dvs. a standardizat gestionarea configurației tmux
Nu folosiți niciunul (folosiți systemd sau supervisor în schimb) când:
- Scopul este pur și simplu să rulați un serviciu de fundal care să supraviețuiască repornirilor
- Nu aveți nevoie de acces interactiv la procesul care rulează
- Procesul ar trebui să repornească automat la eșec
Listă de verificare tehnică a punctelor cheie
Înainte de a vă baza pe Screen într-un mediu de producție, verificați următoarele:
- `autodetach on` este prezent în `~/.screenrc` — fără el, căderile SSH pot ucide sesiunile
- `defscrollback` este setat la cel puțin 5000 de linii pentru volumele de lucru cu multe jurnale
- `defflow off` este setat pentru a preveni blocările accidentale `Ctrl+S`
- Toate sesiunile de lungă durată sunt denumite (`-S flag`) — nu vă bazați niciodată pe identificarea doar prin PID
- Cunoașteți comanda de recuperare `screen -d -r` pentru sesiunile atașate vechi
- Socket-urile sesiunilor moarte sunt curățate periodic cu `screen -wipe`
- Dacă rulați ca mai mulți utilizatori, înțelegeți limita de proprietate a sesiunii root/utilizator
- Variabila `TERM` este verificată dacă aplicațiile TUI se redau incorect în interiorul Screen
- Pentru job-urile de fundal complet automatizate, se folosește `screen -dmS` în loc de `nohup` sau `&` simplu, oferindu-vă o sesiune recuperabilă și inspecta bilă
Întrebări frecvente
GNU Screen supraviețuiește unei reporniri a serverului?
Nu. Sesiunile Screen sunt păstrate în memorie ca procese. O repornire completă a serverului termină toate sesiunile Screen și procesele lor copil. Pentru procesele care trebuie să supraviețuiască repornirilor, folosiți unități systemd sau un supervizor de procese precum Supervisor. Screen este instrumentul corect pentru persistența interactivă în cazul deconectărilor, nu al repornirilor.
Care este diferența dintre `screen -r` și `screen -x`?
`screen -r` se reatașează la o sesiune detașată — eșuează dacă sesiunea este deja atașată în altă parte. `screen -x` se atașează la o sesiune indiferent de starea sa curentă de atașare, permițând a două terminale să partajeze aceeași sesiune simultan. Folosiți `-x` pentru depanare colaborativă; folosiți `-r` pentru reatașarea standard.
Cum derulați în sus în interiorul unei ferestre Screen?
Intrați în modul de copiere cu `Ctrl+A, [`, apoi folosiți tastele săgeată, `Page Up`/`Page Down`, sau navigarea în stil vi (`Ctrl+F`, `Ctrl+B`). Apăsați `Escape` sau `q` pentru a ieși din modul de copiere. Asigurați-vă că `defscrollback` în `.screenrc` este setat suficient de mare pentru a păstra istoricul de care aveți nevoie.
Poate Screen fi folosit fără privilegii root?
Da. Screen rulează în întregime ca utilizatorul care îl invocă. Nu sunt necesare privilegii root pentru a crea, atașa sau gestiona sesiuni. Fișierele socket sunt stocate într-un director per utilizator (de obicei `/var/run/screen/S-username/`). Singura excepție este dacă Screen nu este instalat — instalarea necesită acces la managerul de pachete, care necesită de obicei root sau sudo.
De ce sesiunea mea Screen afișează „Attached” când nimeni nu este conectat?
Acest lucru se întâmplă de obicei când o conexiune SSH a căzut fără a trimite un SIGHUP curat — de exemplu, din cauza unui timeout de rețea mai degrabă decât a unei deconectări explicite. Sesiunea își păstrează starea `Attached` deoarece Screen nu a primit niciodată semnalul de deconectare. Folosiți `screen -d -r session_name` pentru a detașa forțat conexiunea fantomă și a vă reatașa curat.
