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 nimialustab uut sessioonitmux lsnäitab sessioonetmux attach -t nimiühendub sessiooniga tagasiscreen -S nimialustab uut screen-sessiooniscreen -lsnäitab olemasolevaid sessioonescreen -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:
- logi serverisse
- käivita
tmux new -s nimi - tee oma töö selles sessioonis
- eemaldu sessioonist, aga ära tapa seda
- tule hiljem tagasi käsuga
tmux attach -t nimi
Oluline klahvikombinatsioon:
Ctrl-b deraldab 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 deraldab sessioonist
Kumba valida?
Praktiline rusikareegel:
- kui masinas on olemas
tmux, kasuta enamasti seda - kui vanemas süsteemis on ainult
screen, kasutascreen-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.
tmuxnohupdisown
hoiab alles terve shelli sessiooni
aitab ühel käsul jääda ellu ka siis, kui ühendus katkeb
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
- Uuri, kas sinu masinas on olemas
tmuxvõiscreen. - Käivita üks sessioon.
- Eemaldu sellest ilma sessiooni lõpetamata.
- Ühendu sessiooniga tagasi.
- Seleta ühe lausega, miks see on kasulik just kaugmasinas.