БпСстСтС 15% ΠΎΡ‚ всички хостинг услуги

ВСствай умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠžΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
Заглавия
Linux

ΠŸΡŠΠ»Π½ΠΎΡ‚ΠΎ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° GNU Screen Π² Linux

GNU Screen Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅Π½ мултиплСксор, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅, управляватС ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚Π΅ мноТСство шСл сСсии ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅Π½ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΡ‚ΠΊΠ°Ρ‡ΠΈΡ‚Π΅ ΠΎΡ‚ Screen сСсия, всСки процСс, изпълняван Π² нСя, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ β€” оцСлявайки ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ Π½Π° SSH Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ сривовС ΠΈ затварянС Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° β€” ΠΈ остава напълно Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

Π—Π° всСки, ΠΊΠΎΠΉΡ‚ΠΎ управлява ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Ρ‡Ρ€Π΅Π· SSH, Ρ‚Π°Π·ΠΈ СдинствСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° цял клас ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ рисковС: ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° Π²Ρ€ΡŠΠ·ΠΊΠ° Π²Π΅Ρ‡Π΅ Π½Π΅ прСкратява ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰Π° сС миграция Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, многочасова Π·Π°Π΄Π°Ρ‡Π° Π·Π° компилация ΠΈΠ»ΠΈ процСс Π·Π° наблюдСниС Π½Π° ΠΆΠΈΠ²ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅.

Π—Π°Ρ‰ΠΎ GNU Screen остава Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ‚Π° Linux администрация

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ tmux Π½Π°Π±Ρ€Π°Ρ…Π° популярност, Π½ΠΎ Screen сС доставя ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° практичСски всяка ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π° Linux дистрибуция ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€Π΅Π½ ΠΎΠ±Ρ€Π°Π·. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Ρ‡Ρ€Π΅Π· SSH към bare-metal машина ΠΈΠ»ΠΈ наскоро осигурСн VPS Π₯остинг инстанс, Screen Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π±Π΅Π· Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° инсталация. Ниският ΠΌΡƒ Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ с POSIX Π³ΠΎ правят прагматичния ΠΈΠ·Π±ΠΎΡ€ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ срСди.

Основни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ с Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ³Π»Π΅Π΄:

  • Устойчивост Π½Π° сСсиитС: ΠŸΡ€ΠΎΡ†Π΅ΡΠΈΡ‚Π΅ оцСляват ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° SSH ΠΈ сривовС ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
  • ΠœΡƒΠ»Ρ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ: ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ нСзависими шСл ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄Π½Π° сСсия
  • БподСлянС Π½Π° сСсии: Π”Π²Π°ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π°Ρ‚ към Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° сСсия Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ
  • Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сСрийна ΠΊΠΎΠ½Π·ΠΎΠ»Π°: Screen ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с `/dev/ttyS*` устройства Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π°
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎ стартиранС: ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» `.screenrc` позволява напълно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ срСди ΠΏΡ€ΠΈ стартиранС

GNU Screen срСщу tmux: Π˜Π·Π±ΠΎΡ€ Π½Π° правилния мултиплСксор

И Π΄Π²Π°Ρ‚Π° инструмСнта Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ основСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ философии Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅. Π’Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² производствСни срСди.

ЀункцияGNU Screentmux
Наличност ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталиран Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΠΈΠ˜Π·ΠΈΡΠΊΠ²Π° ΠΈΠ·Ρ€ΠΈΡ‡Π½Π° инсталация
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ»`~/.screenrc``~/.tmux.conf`
РаздСлянС Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ (Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ/Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ)ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ (само Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ Ρ‡Ρ€Π΅Π· Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ)Пълно, гъвкаво раздСлянС Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ
БподСлянС Π½Π° сСсииНативно ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ прикачванСНативно ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅
Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ / Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡΠ˜Π½ΠΆΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ‡Ρ€Π΅Π· `screen -X``tmux send-keys`, Π±ΠΎΠ³Π°Ρ‚ API
Π Π°Π·Ρ…ΠΎΠ΄ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ΠœΠ½ΠΎΠ³ΠΎ нисъкНисък
ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° сСрийни устройстваДа (`screen /dev/ttyS0`)НС
ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° статус Π»Π΅Π½Ρ‚Π°Ρ‚Π°Π£ΠΌΠ΅Ρ€Π΅Π½ΠΎ (hardstatus)Много гъвкаво
Π Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅vi стилvi ΠΈΠ»ΠΈ emacs стил
ЕкосистСма ΠΎΡ‚ ΠΏΠ»ΡŠΠ³ΠΈΠ½ΠΈΠΡΠΌΠ°ΠΠΊΡ‚ΠΈΠ²Π½Π° (TPM)
ИдСалСн случай Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°ΠœΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, сСрийни ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ, legacy срСдиРазработчСски Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ станции, слоТни оформлСния

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ насоки: На headless Dedicated Server, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, простотата ΠΈ унивСрсалната наличност Π½Π° Screen Π³ΠΎ правят ΠΈΠ·Π±ΠΎΡ€Π° с ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ усилия. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ Π±ΠΎΠ³Π°Ρ‚Π° статус Π»Π΅Π½Ρ‚Π°, tmux ΠΏΠ΅Ρ‡Π΅Π»ΠΈ.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° GNU Screen

Screen Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ инсталиран Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ дистрибуции. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ с:

β€œ`bash

screen –version

β€œ`

Ако липсва, инсталирайтС Π³ΠΎ с подходящия ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

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 (разпространСн Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ):

β€œ`bash

apk add screen

β€œ`

Π‘Π»Π΅Π΄ инсталацията Π½Π΅ сС изисква Π΄Π΅ΠΌΠΎΠ½ ΠΈΠ»ΠΈ услуга. Screen Ρ€Π°Π±ΠΎΡ‚ΠΈ изцяло ΠΊΠ°Ρ‚ΠΎ потрСбитСлски процСс.

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Screen сСсия

Основна сСсия

β€œ`bash

screen

β€œ`

Π’ΠΎΠ²Π° Π²ΠΈ прСнася Π² Π½ΠΎΠ²Π° сСсия със стандартСн шСл. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π΅ Π½Π΅Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌ ΠΎΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ командния прСфикс Π½Π° Screen.

Π˜ΠΌΠ΅Π½ΡƒΠ²Π°Π½Π° сСсия (ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ)

β€œ`bash

screen -S session_name

β€œ`

Π’ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΉΡ‚Π΅ сСсиитС си Π² производствСна срСда. НСимСнуванитС сСсии сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ само ΠΏΠΎ тСхния PID, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ склонно към Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ мноТСство сСсии.

Π‘ΡŠΠ²Π΅Ρ‚ Π·Π° конвСнция Π·Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅: Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ описатСлни ΠΈΠΌΠ΅Π½Π°, отразяващи Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ β€” `screen -S db-migration`, `screen -S log-monitor`, `screen -S build-php82`. Π’ΠΎΠ²Π° сС ΠΎΡ‚ΠΏΠ»Π°Ρ‰Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Π²ΡŠΡ€Π½Π΅Ρ‚Π΅ към ΡΡŠΡ€Π²ΡŠΡ€ слСд часовС ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅.

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° сСсия ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°

β€œ`bash

screen -S backup-job bash -c 'rsync -avz /data/ user@remote:/backup/ && echo DONE'

β€œ`

БСсията ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π΄ΠΎΡ€ΠΈ слСд ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°, позволявайки Π²ΠΈ Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ‚Π΅ ΠΈΠ·Ρ…ΠΎΠ΄Π° ΠΏΠΎ-късно.

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° сСсия Π² ΠΎΡ‚ΠΊΠ°Ρ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ

β€œ`bash

screen -dmS headless-job ./long_running_script.sh

β€œ`

Π€Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ `-dm` ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ сСсията ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ я ΠΎΡ‚ΠΊΠ°Ρ‡Π²Π°Ρ‚. Π’ΠΎΠ²Π° Π΅ правилният шаблон Π·Π° стартиранС Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚ cron ΠΈΠ»ΠΈ скриптовС Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ β€” ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ сС изпълнява Π² ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π°, Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΠ° Screen сСсия, Π±Π΅Π· Π΄Π° изисква ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

ΠšΠΎΠΌΠ°Π½Π΄Π½ΠΈΡΡ‚ прСфикс: Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Ctrl+A

ВсСки клавишСн пряк ΠΏΡŠΡ‚ Π½Π° Screen Π·Π°ΠΏΠΎΡ‡Π²Π° с escape послСдоватСлността `Ctrl+A`. Π’ΠΎΠ²Π° натисканС Π½Π° клавиш ΠΊΠ°Π·Π²Π° Π½Π° Screen, Ρ‡Π΅ слСдващият символ Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° Π½Π΅ Π²Ρ…ΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰Π°Ρ‚Π° сС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π΅ ΠΎΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΈ запамСтяванСто Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΊΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π°.

Ако стартиратС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π²ΡŠΡ‚Ρ€Π΅ Π² Screen, която сама ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° `Ctrl+A` (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ някои тСкстови Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° `readline`), ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ Π±ΡƒΠΊΠ²Π°Π»Π΅Π½ `Ctrl+A` Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, ΠΊΠ°Ρ‚ΠΎ натиснСтС `Ctrl+A` Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ (`Ctrl+A, Ctrl+A`).

ΠžΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° сСсии

ΠžΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰Π° сС сСсия

β€œ`

Ctrl+A, D

β€œ`

БСсията ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС изпълнява Π½Π° Π·Π°Π΄Π΅Π½ ΠΏΠ»Π°Π½. Π’Ρ€ΡŠΡ‰Π°Ρ‚Π΅ сС Π² родитСлския шСл. Никакви процСси Π²ΡŠΡ‚Ρ€Π΅ Π² сСсията Π½Π΅ сС ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‚.

Π˜Π·Π±Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° всички сСсии

β€œ`bash

screen -ls

β€œ`

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄:

β€œ`

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` ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΄Ρ€ΡƒΠ³ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° към Ρ‚Π°Π·ΠΈ сСсия. `Detached` ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ сС изпълнява, Π½ΠΎ няма ΡΠ²ΡŠΡ€Π·Π°Π½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ към ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° сСсия

β€œ`bash

screen -r db-migration

β€œ`

Или по PID:

β€œ`bash

screen -r 14231

β€œ`

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ към Π²Π΅Ρ‡Π΅ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½Π° сСсия

Ако Π΄Π°Π΄Π΅Π½Π° сСсия ΠΏΠΎΠΊΠ°Π·Π²Π° `Attached`, Π½ΠΎ трябва Π΄Π° я ΠΏΠΎΠ΅ΠΌΠ΅Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слСд ΠΊΠ°Ρ‚ΠΎ остаряла SSH Π²Ρ€ΡŠΠ·ΠΊΠ° я Π΅ оставила Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π°):

β€œ`bash

screen -d -r log-monitor

β€œ`

Π€Π»Π°Π³ΡŠΡ‚ `-d` ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‡Π° Π΄Ρ€ΡƒΠ³Π°Ρ‚Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π²ΠΈ ΠΏΡ€ΠΈΠΊΠ°Ρ‡ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° SSH сСсия Π΅ ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Π»Π° Π±Π΅Π· чисто ΠΎΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅.

ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅: Π”Π²Π°ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π² Π΅Π΄Π½Π° сСсия

β€œ`bash

screen -x session_name

β€œ`

И Π΄Π²Π°Ρ‚Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π²ΠΈΠΆΠ΄Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. Π’ΠΎΠ²Π° Π΅ Π±Π΅Π·Ρ†Π΅Π½Π½ΠΎ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈΠ»ΠΈ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄Π΅Π½ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° с ΠΊΠΎΠ»Π΅Π³Π° β€” ΠΈ Π΄Π²Π΅Ρ‚Π΅ страни Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° взаимодСйстват с Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ шСл.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° сСсия

Π•Π΄Π½Π° Screen сСсия ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ. ВсСки ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π΅ нСзависим шСл (ΠΈΠ»ΠΈ процСс).

БъздаванС Π½Π° Π½ΠΎΠ² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†

β€œ`

Ctrl+A, C

β€œ`

Навигация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ

ΠŸΡ€ΡΠΊ ΠΏΡŠΡ‚Π”Π΅ΠΉΡΡ‚Π²ΠΈΠ΅
`Ctrl+A, N`Π‘Π»Π΅Π΄Π²Π°Ρ‰ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†
`Ctrl+A, P`ΠŸΡ€Π΅Π΄ΠΈΡˆΠ΅Π½ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†
`Ctrl+A, 0–9`ΠŸΡ€Π΅ΡΠΊΠ°Ρ‡Π°Π½Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€
`Ctrl+A, "`Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ списък Π½Π° всички ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ
`Ctrl+A, '`Подкана Π·Π° въвСТданС Π½Π° Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†

ΠŸΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†

β€œ`

Ctrl+A, A

β€œ`

Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ ΠΈ натиснСтС Enter. БмислСнитС ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π² hardstatus Π»Π΅Π½Ρ‚Π°Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ навигацията Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·Π° Π² сСсии с ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ.

ЗатварянС Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†

Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ `exit` ΠΈΠ»ΠΈ натиснСтС `Ctrl+D` Π² шСла Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π°. ΠšΠΎΠ³Π°Ρ‚ΠΎ послСдният ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π² Π΄Π°Π΄Π΅Π½Π° сСсия бъдС Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½, сСсията сС прСкратява.

РаздСлянС Π½Π° Π΅ΠΊΡ€Π°Π½Π° Π½Π° Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ

Screen ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° раздСлянС Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π° мноТСство Π²ΠΈΠ΄ΠΈΠΌΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ раздСлянС (Π³ΠΎΡ€Π΅/Π΄ΠΎΠ»Ρƒ)

β€œ`

Ctrl+A, S

β€œ`

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ раздСлянС (ляво/дясно)

β€œ`

Ctrl+A, |

β€œ`

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎΡ‚ΠΎ раздСлянС изисква Screen 4.1.0 ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π° вСрсия.

ΠŸΡ€Π΅ΠΌΠ΅ΡΡ‚Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ

β€œ`

Ctrl+A, Tab

β€œ`

ΠŸΡ€ΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† към Ρ€Π΅Π³ΠΈΠΎΠ½

Π‘Π»Π΅Π΄ прСмСстванС Π½Π° фокуса към Ρ€Π΅Π³ΠΈΠΎΠ½, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `Ctrl+A, "`, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π΄Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π°ΠΌ.

ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π³ΠΈΠΎΠ½

β€œ`

Ctrl+A, X (remove current region)

Ctrl+A, Q (remove all regions except current)

β€œ`

Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Π³ΠΈΠΎΠ½ Π½Π΅ затваря ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π°, изпълняван Π² Π½Π΅Π³ΠΎ. ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΡŠΡ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° сС изпълнява; просто спиратС Π΄Π° Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚Π΅ Π² Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

ΠšΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ поставянС (Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄)

Screen ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π±ΡƒΡ„Π΅Ρ€ Π·Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄ Π·Π° всСки ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†. Π—Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ:

β€œ`

Ctrl+A, [

β€œ`

Π’ΠΎΠ²Π° Π²Π»ΠΈΠ·Π° Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅. Навигацията ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° клавиши Π² стил vi:

  • `h`, `j`, `k`, `l` β€” прСмСстванС Π½Π° курсора
  • `Ctrl+F` / `Ctrl+B` β€” страница Π½Π°ΠΏΡ€Π΅Π΄ / Π½Π°Π·Π°Π΄
  • `/` β€” Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π°ΠΏΡ€Π΅Π΄
  • `?` β€” Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π°Π·Π°Π΄
  • `Space` β€” ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° сСлСкцията
  • `Space` (ΠΎΡ‚Π½ΠΎΠ²ΠΎ) β€” ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° края ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π² Π±ΡƒΡ„Π΅Ρ€Π°

Π—Π° поставянС Π½Π° копирания тСкст:

β€œ`

Ctrl+A, ]

β€œ`

Π‘ΡƒΡ„Π΅Ρ€ΡŠΡ‚ Π·Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 100 Ρ€Π΅Π΄Π°. Π—Π° наблюдСниС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚ΠΎΠ²Π° Π² `.screenrc` (Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ).

Π—Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Screen сСсия

β€œ`

Ctrl+A, X

β€œ`

БСсията сС Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ изисква Π²Π°ΡˆΠ°Ρ‚Π° Unix потрСбитСлска ΠΏΠ°Ρ€ΠΎΠ»Π° ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π°Π²Π°Ρ‚Π΅ ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΡΠ²ΡŠΡ€Π·Π°Π½ към чувствитСлСн ΡΡŠΡ€Π²ΡŠΡ€ β€” ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π΅ ΠΎΡ‚ затварянСто Π½Π° SSH Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅.

Π˜Π·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ към сСсия Π±Π΅Π· ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅

Π€Π»Π°Π³ΡŠΡ‚ `-X` Π²ΠΈ позволява Π΄Π° ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Screen ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰Π° сС сСсия ΠΎΡ‚Π²ΡŠΠ½:

β€œ`bash

screen -S db-migration -X stuff "tail -f /var/log/mysql/error.logn"

β€œ`

ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° `stuff` ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° натискания Π½Π° клавиши към активния ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π½Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π°Ρ‚Π° сСсия. `n` симулира натисканС Π½Π° Enter. Π’Π°Π·ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² скриптовС Π·Π° автоматизация Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π·Π° взаимодСйствиС с Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Screen сСсии Π±Π΅Π· изискванС Π·Π° Ρ€ΡŠΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Screen с .screenrc

Π€Π°ΠΉΠ»ΡŠΡ‚ `~/.screenrc` сС Ρ‡Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ стартиранС ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Screen ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π”ΠΎΠ±Ρ€Π΅ ΠΈΠ·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ `.screenrc` трансформира Screen ΠΎΡ‚ основСн мултиплСксор Π² наистина Π΅Ρ€Π³ΠΎΠ½ΠΎΠΌΠΈΡ‡Π½Π° срСда.

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Π³ΠΎ:

β€œ`bash

nano ~/.screenrc

β€œ`

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½Π° производствСна конфигурация Π½Π° .screenrc

β€œ`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` Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° Π·Π° SSH ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. Π‘Π΅Π· нСя, Π°ΠΊΠΎ SSH Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π²ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π΅ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ (вмСсто Π΄Π° натиснСтС `Ctrl+A, D`), Screen ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈ сСсията вмСсто Π΄Π° я ΠΎΡ‚ΠΊΠ°Ρ‡ΠΈ. Π‘ `autodetach on`, сигнал SIGHUP (ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° SSH) задСйства чисто ΠΎΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅ вмСсто прСкратяванС Π½Π° сСсията.

`defflow off` прСдотвратява чСстото Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ случайно натисканС Π½Π° `Ctrl+S` ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ΄Π½ΠΎ замразяванС Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Много администратори губят ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π² отстраняванС Π½Π° нСизправности Π½Π° β€žΠ·Π°ΠΌΡ€Π°Π·Π΅Π½β€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΊΠΎΠΉΡ‚ΠΎ просто Π΅ Π² ΠΏΠ°ΡƒΠ·Π° Π½Π° XON/XOFF ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ производствСни случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°

БСзопасно изпълнСниС Π½Π° миграция Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ

β€œ`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 Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π΅ ΠΏΠΎ срСдата Π½Π° миграцията, ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°. ΠŸΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Ρ‚Π΅ сС ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ Π³ΠΎ Π½Π°ΠΌΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ»ΠΈ всС ΠΎΡ‰Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ сС, ΠΈΠ»ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ с пълния ΠΈΠ·Ρ…ΠΎΠ΄, Π·Π°ΠΏΠ°Π·Π΅Π½ Π² Π»ΠΎΠ³Π° ΠΈ Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄.

Π•Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ наблюдСниС Π½Π° мноТСство Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

β€œ`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

β€œ`

НавигирайтС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈΡ‚Π΅ с `Ctrl+A, "`, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠΉ Π»ΠΎΠ³ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° активност.

Автоматизиран скрипт Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ с 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"

β€œ`

Π’ΠΎΠ·ΠΈ шаблон Π΅ особСно ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π° VPS с cPanel, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° управляватС мноТСство Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½ΠΈΡ Π½Π° прилоТСния ΠΎΡ‚ Π΅Π΄ΠΈΠ½ административСн шСл.

Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сСрийна ΠΊΠΎΠ½Π·ΠΎΠ»Π°

β€œ`bash

screen /dev/ttyS0 115200

β€œ`

Screen сС удвоява ΠΊΠ°Ρ‚ΠΎ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° сСриСн Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π’ΠΎΠ²Π° Π΅ стандартната Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π½Π° физичСски ΡΡŠΡ€Π²ΡŠΡ€, ΠΌΡ€Π΅ΠΆΠΎΠ² ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ устройство Ρ‡Ρ€Π΅Π· сСрийна Π²Ρ€ΡŠΠ·ΠΊΠ° β€” Π±Π΅Π· Π΄Π° сС изисква minicom ΠΈΠ»ΠΈ picocom.

ЧСсти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅

Π’Π»ΠΎΠΆΠ΅Π½ΠΈ Screen сСсии: Ако сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Ρ‡Ρ€Π΅Π· SSH ΠΎΡ‚ Screen сСсия Π½Π° Машина A към Машина B ΠΈ стартиратС Screen Ρ‚Π°ΠΌ, Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π΄Π²Π° слоя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° `Ctrl+A`. Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° Screen сСсия ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π° `Ctrl+A` ΠΏΡ€Π΅Π΄ΠΈ Π²ΡŠΠ½ΡˆΠ½Π°Ρ‚Π° Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈ. Π—Π° Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ `Ctrl+A` към Π²ΡŠΠ½ΡˆΠ½Π°Ρ‚Π° сСсия, натиснСтС `Ctrl+A, Ctrl+A`. Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅, ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ escape клавиша Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° сСсия Π² нСйния `.screenrc` с `escape ^Bb`.

ΠœΡŠΡ€Ρ‚Π²ΠΈ сСсии, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС почистват: Ако Screen сС сринС ΠΈΠ»ΠΈ Ρ…ΠΎΡΡ‚ΡŠΡ‚ сС рСстартира нСчисто, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° сокСтитС ΠΌΠΎΠΆΠ΅ Π΄Π° останат Π² `/var/run/screen/` ΠΈΠ»ΠΈ `~/.screen/`, ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΉΠΊΠΈ сСсии ΠΊΠ°Ρ‚ΠΎ `Dead`. ΠŸΠΎΡ‡ΠΈΡΡ‚Π΅Ρ‚Π΅ Π³ΠΈ с:

β€œ`bash

screen -wipe

β€œ`

БСсия, ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°Π½Π° ΠΎΡ‚ root срСщу ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»: Screen сСсия, стартирана ΠΊΠ°Ρ‚ΠΎ root, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½Π° ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ `sudo su` Π²ΡŠΡ‚Ρ€Π΅ Π² Screen сСсия ΠΈ слСд Ρ‚ΠΎΠ²Π° сС ΠΎΡ‚ΠΊΠ°Ρ‡ΠΈΡ‚Π΅, ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Ρ‚Π΅ сС ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΊΠ°Ρ‚ΠΎ root ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· `sudo screen -r`.

ΠΠ΅ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° `TERM`: Някои прилоТСния Π²ΡŠΡ‚Ρ€Π΅ Π² Screen сС Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ `TERM` Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° `screen` ΠΈΠ»ΠΈ `screen-256color` вмСсто Π½Π° `xterm-256color`. Ако TUI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ с `echo $TERM` ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Ρ‚Π΅ Π² `.screenrc` с `term xterm-256color` ΠΏΡ€ΠΈ нСобходимост.

Π˜Π·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄: Π‘ΡƒΡ„Π΅Ρ€ΡŠΡ‚ Π·Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅ Π½Π°Π·Π°Π΄ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ 100 Ρ€Π΅Π΄Π° Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ Π·Π° сСриозно наблюдСниС Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅. Π’ΠΈΠ½Π°Π³ΠΈ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ `defscrollback 10000` ΠΈΠ»ΠΈ ΠΏΠΎ-висока стойност Π² `.screenrc` Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½Π° администрация.

Π‘ΡŠΡ€Π·Π° справка: Основни Screen ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ

Π”Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ΠšΠΎΠΌΠ°Π½Π΄Π° / ΠŸΡ€ΡΠΊ ΠΏΡŠΡ‚
Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° сСсия`screen`
Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π° сСсия`screen -S name`
Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚ΠΊΠ°Ρ‡Π΅Π½Π° сСсия`screen -dmS name`
Π˜Π·Π±Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° сСсии`screen -ls`
ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅`screen -r name`
ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅`screen -d -r name`
ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅`screen -x name`
ΠžΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅`Ctrl+A, D`
Нов ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†`Ctrl+A, C`
Π‘Π»Π΅Π΄Π²Π°Ρ‰ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†`Ctrl+A, N`
ΠŸΡ€Π΅Π΄ΠΈΡˆΠ΅Π½ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†`Ctrl+A, P`
Бписък Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈΡ‚Π΅`Ctrl+A, "`
ΠŸΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†`Ctrl+A, A`
Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ раздСлянС`Ctrl+A, S`
Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ раздСлянС`Ctrl+A,`
ΠŸΡ€Π΅ΠΌΠ΅ΡΡ‚Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ`Ctrl+A, Tab`
Π’Π»ΠΈΠ·Π°Π½Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅/ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°Π½Π΅`Ctrl+A, [`
ΠŸΠΎΡΡ‚Π°Π²ΡΠ½Π΅ ΠΎΡ‚ Π±ΡƒΡ„Π΅Ρ€Π°`Ctrl+A, ]`
Π—Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° сСсия`Ctrl+A, X`
ЗатварянС Π½Π° тСкущия ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†`Ctrl+A, K`
ЗатварянС Π½Π° цялата сСсия`Ctrl+A, `
Π˜Π·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° към сСсия`screen -S name -X stuff "cmdn"`
ΠŸΠΎΡ‡ΠΈΡΡ‚Π²Π°Π½Π΅ Π½Π° ΠΌΡŠΡ€Ρ‚Π²ΠΈ сСсии`screen -wipe`

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅: Screen Π² управлявани хостинг срСди

Screen Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ шСл, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с всяка Linux срСда, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ SSH Π΄ΠΎΡΡ‚ΡŠΠΏ. Π’ΠΎΠ²Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° bare-metal ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Dedicated Servers ΠΈ стандартни VPS Π₯остинг инстанси. НС Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² срСди Π·Π° сподСлСн хостинг, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ SSH Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΈΠ»ΠΈ липсва.

Π—Π° натоварвания, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ постоянна Ρ„ΠΎΠ½ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” ΠΊΠ°Ρ‚ΠΎ GPU-ускорСно ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ β€” ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Screen с GPU Π₯остинг срСда Π²ΠΈ Π΄Π°Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ изчислитСлнитС рСсурси, Ρ‚Π°ΠΊΠ° ΠΈ устойчивостта Π½Π° сСсиитС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° многочасови Π·Π°Π΄Π°Ρ‡ΠΈ.

Ако инфраструктурата Π²ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΡƒΠ΅Π±-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ услуги Π½Π°Ρ€Π΅Π΄ с Ρ„ΠΎΠ½ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Screen-управлявани backend Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ SSL Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΈ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ цСлият стСк β€” ΠΊΠ°ΠΊΡ‚ΠΎ видимият ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ слой, Ρ‚Π°ΠΊΠ° ΠΈ административният backend β€” Ρ€Π°Π±ΠΎΡ‚ΠΈ с подходящи ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈ Π·Π° сигурност.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: Кога Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Screen

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Screen ΠΊΠΎΠ³Π°Ρ‚ΠΎ:

  • Π˜ΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ устойчивост Π½Π° сСсиитС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ само Screen
  • ΠžΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°Ρ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сСрийна ΠΊΠΎΠ½Π·ΠΎΠ»Π° ΠΈΠ»ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎ устройство
  • Π˜Π·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ Π΅Π΄ΠΈΠ½ Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°Π΅Π½ процСс ΠΈ Π½Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ
  • Π Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° систСма, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Alpine ΠΈΠ»ΠΈ BusyBox
  • Врябва Π΄Π° сподСлитС сСсия с Π΄Ρ€ΡƒΠ³ администратор Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅

ΠžΠ±ΠΌΠΈΡΠ»Π΅Ρ‚Π΅ tmux вмСсто Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ³Π°Ρ‚ΠΎ:

  • Π˜Π·ΠΈΡΠΊΠ²Π°Ρ‚Π΅ гъвкаво Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ раздСлянС Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ
  • Π˜ΡΠΊΠ°Ρ‚Π΅ СкосистСма ΠΎΡ‚ плъгини Π·Π° подобрСния Π½Π° статус Π»Π΅Π½Ρ‚Π°Ρ‚Π°
  • Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ срСда Π·Π° разработчичСска Ρ€Π°Π±ΠΎΡ‚Π½Π° станция със слоТни оформлСния
  • Π’Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ Π΅ стандартизирал ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° tmux конфигурацията

НС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½ΠΎΡ‚ΠΎ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ systemd ΠΈΠ»ΠΈ supervisor вмСсто Ρ‚ΠΎΠ²Π°) ΠΊΠΎΠ³Π°Ρ‚ΠΎ:

  • Π¦Π΅Π»Ρ‚Π° Π΅ СдинствСно Π΄Π° сС изпълнява Ρ„ΠΎΠ½ΠΎΠ²Π° услуга, която трябва Π΄Π° ΠΎΡ†Π΅Π»Π΅Π΅ ΠΏΡ€ΠΈ рСстартиранС
  • НС сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ΠΈΡ сС процСс
  • ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ трябва Π΄Π° сС рСстартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄Π°

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ списък с тСхничСски ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚Π΅ Π½Π° Screen Π² производствСна срСда, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ слСдното:

  • `autodetach on` Π΅ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ Π² `~/.screenrc` β€” Π±Π΅Π· Π½Π΅Π³ΠΎ, ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡΡ‚Π° Π½Π° SSH ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡƒΠ½ΠΈΡ‰ΠΎΠΆΠ°Ρ‚ сСсиитС
  • `defscrollback` Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π½Π° ΠΏΠΎΠ½Π΅ 5000 Ρ€Π΅Π΄Π° Π·Π° натоварвания с ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΎΠ²Π΅
  • `defflow off` Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π·Π° прСдотвратяванС Π½Π° случайни замразявания ΠΎΡ‚ `Ctrl+S`
  • Всички Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ сСсии са ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ (`-S flag`) β€” Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ само Π½Π° идСнтификация ΠΏΠΎ PID
  • ΠŸΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ `screen -d -r` Π·Π° остарСли ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ΠΈ сСсии
  • ΠœΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ сокСти Π½Π° сСсии сС почистват ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ с `screen -wipe`
  • Ако Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с мноТСство ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° собствСност Π½Π° сСсиитС root/ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° `TERM` Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π°, Π°ΠΊΠΎ TUI прилоТСнията сС Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π²ΡŠΡ‚Ρ€Π΅ Π² Screen
  • Π—Π° напълно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° `screen -dmS` вмСсто `nohup` ΠΈΠ»ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ `&`, Π΄Π°Π²Π°ΠΉΠΊΠΈ Π²ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΠ°, инспСктируСма сСсия

Π§Π—Π’

ΠžΡ†Π΅Π»ΡΠ²Π° Π»ΠΈ GNU Screen ΠΏΡ€ΠΈ рСстартиранС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°?

НС. Screen сСсиитС сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ процСси. ΠŸΡŠΠ»Π½ΠΎΡ‚ΠΎ рСстартиранС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° прСкратява всички Screen сСсии ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈ процСси. Π—Π° процСси, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° оцСлСят ΠΏΡ€ΠΈ рСстартиранС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ systemd Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ ΠΈΠ»ΠΈ Π½Π°Π΄Π·ΠΎΡ€Π½ΠΈΠΊ Π½Π° процСси ΠΊΠ°Ρ‚ΠΎ Supervisor. Screen Π΅ правилният инструмСнт Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π° устойчивост ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Π° Π½Π΅ ΠΏΡ€ΠΈ рСстартиранС.

Каква Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ `screen -r` ΠΈ `screen -x`?

`screen -r` ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π° към ΠΎΡ‚ΠΊΠ°Ρ‡Π΅Π½Π° сСсия β€” Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ Π΅, Π°ΠΊΠΎ сСсията Π²Π΅Ρ‡Π΅ Π΅ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½Π° Π΄Ρ€ΡƒΠ³Π°Π΄Π΅. `screen -x` ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π° към сСсия нСзависимо ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΠΉ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅, позволявайки Π½Π° Π΄Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π΄Π° сподСлят Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° сСсия Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `-x` Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `-r` Π·Π° стандартно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅.

Как Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚Π°ΠΌ Π½Π°Π³ΠΎΡ€Π΅ Π²ΡŠΡ‚Ρ€Π΅ Π² Screen ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†?

Π’Π»Π΅Π·Ρ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ с `Ctrl+A, [`, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΠΈΡ‚Π΅ Π·Π° стрСлки, `Page Up`/`Page Down`, ΠΈΠ»ΠΈ навигация Π² стил vi (`Ctrl+F`, `Ctrl+B`). НатиснСтС `Escape` ΠΈΠ»ΠΈ `q` Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅. Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ `defscrollback` Π² `.screenrc` Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ високо, Π·Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Π²ΠΈ история.

МоТС Π»ΠΈ Screen Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π· root ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ?

Π”Π°. Screen Ρ€Π°Π±ΠΎΡ‚ΠΈ изцяло ΠΊΠ°Ρ‚ΠΎ извикващия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π». НС сС изискват root ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π·Π° създаванС, ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° сСсии. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° сокСтитС сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² дирСктория Π·Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ `/var/run/screen/S-username/`). ЕдинствСното ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅ Π°ΠΊΠΎ Screen Π½Π΅ Π΅ инсталиран β€” инсталацията изисква Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ изисква root ΠΈΠ»ΠΈ sudo.

Π—Π°Ρ‰ΠΎ Screen сСсията ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° β€žAttached”, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½?

Π’ΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС случва, ΠΊΠΎΠ³Π°Ρ‚ΠΎ SSH Π²Ρ€ΡŠΠ·ΠΊΠ° Π΅ ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Π»Π° Π±Π΅Π· ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° чист SIGHUP β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, Π° Π½Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅. БСсията Π·Π°ΠΏΠ°Π·Π²Π° своСто `Attached` ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Screen Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» сигнала Π·Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ `screen -d -r session_name` Π·Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ·Ρ€Π°Ρ‡Π½Π°Ρ‚Π° Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΈ чисто ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π²Π°Π½Π΅.