Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Püsivad terminalisessioonid: tmux ja screen, mis kuulub osasse Osa III: Failid, võrk ja süsteemitöö.

Püsivad terminalisessioonid: tmux ja screen

Selles peatükis vaatame, kuidas hoida käsurea sessioon elus ka siis, kui SSH-ühendus katkeb või paned sülearvuti kinni.

Loogika

Kaugmasinates ja pikkade tööde puhul on väga tavaline probleem:

  • ühendus katkeb
  • terminal aken pannakse kinni
  • töö jääb pooleli

tmux ja screen lahendavad selle nii, et shell jääb serveris tööle ka siis, kui sina vahepeal lahkud.

Kiirspikker

  • tmux new -s nimi alustab uut sessiooni
  • tmux ls näitab sessioone
  • tmux attach -t nimi ühendub sessiooniga tagasi
  • screen -S nimi alustab uut screen-sessiooni
  • screen -ls näitab olemasolevaid sessioone
  • screen -r nimi ühendub tagasi

Käivita need käsud

Kui kasutad tmux-i:


tmux new -s opik
tmux ls
tmux attach -t opik

Kui kasutad screen-i:


screen -S opik
screen -ls
screen -r opik

tmux

tmux on tänapäeval sageli esimene valik, sest ta on paindlik ja hästi levinud.

Tüüpiline töövoog:

  1. logi serverisse
  2. käivita tmux new -s nimi
  3. tee oma töö selles sessioonis
  4. eemaldu sessioonist, aga ära tapa seda
  5. tule hiljem tagasi käsuga tmux attach -t nimi

Oluline klahvikombinatsioon:

  • Ctrl-b d eraldab sind sessioonist, aga jätab selle tööle

See tähendab, et sinu käivitatud protsessid võivad edasi joosta ka siis, kui ühendus katkeb.

screen

screen on vanem, aga endiselt täiesti kasulik tööriist.

Tema loogika on sama:

  • loo sessioon
  • tee töö sees
  • eemaldu sessioonist
  • naase hiljem

Oluline klahvikombinatsioon:

  • Ctrl-a d eraldab sessioonist

Kumba valida?

Praktiline rusikareegel:

  • kui masinas on olemas tmux, kasuta enamasti seda
  • kui vanemas süsteemis on ainult screen, kasuta screen-i

Oluline on mitte tööriista nimi, vaid harjumus teha pikad tööd püsivas sessioonis.

Millal see eriti kasulik on

  • pikk rsync
  • pikk build
  • andmetöötlus
  • logide jälgimine
  • serveris töötamine ebastabiilse võrgu pealt

See seostub hästi peatükkidega Kauglogimine ja SSH ja Protsessid, tööd ja signaalid.

tmux vs nohup vs disown

Need tööriistad lahendavad sarnast, aga mitte sama probleemi.

  • tmux
  • hoiab alles terve shelli sessiooni

  • nohup
  • aitab ühel käsul jääda ellu ka siis, kui ühendus katkeb

  • disown
  • eemaldab töö shelli tööde nimekirjast

Praktiline rusikareegel:

  • kui tahad hiljem sama shelli juurde tagasi tulla, kasuta tmux-i
  • kui tahad lihtsalt ühe pika käsu käima jätta, võib aidata nohup
  • kui juba töötav taustatöö tuleb shellist "lahti siduda", võib abiks olla disown

Kui pead valima ühe harjumuse, siis vali tmux.

Minitest

  1. Uuri, kas sinu masinas on olemas tmux või screen.
  2. Käivita üks sessioon.
  3. Eemaldu sellest ilma sessiooni lõpetamata.
  4. Ühendu sessiooniga tagasi.
  5. Seleta ühe lausega, miks see on kasulik just kaugmasinas.