Püsivad terminalisessioonid: tmux ja screen
tmux hoiab shelli ja selles käivitatud töö serveris alles ka pärast SSH-ühenduse katkemist. Hiljem saad sama sessiooni juurde tagasi tulla. Käivita tmux sellel masinal, kus töö peab jätkuma, kaugkasutuses seega pärast serverisse logimist.
See ei kaitse serveri väljalülitamise, taaskäivituse ega protsessi krahhi eest. Taustamärk & üksi ei anna samuti püsivat terminalisessiooni.
Katse: lahku ja tule tagasi
tmux new -s opik loob nimega opik sessiooni ja avab selle sees uue shelli. Kui sessioon on juba olemas, vali teine nimi või ühendu olemasolevaga.
tmux new -s opik
Nüüd oled sessiooni sees. Käivita lühike ootamine:
sleep 60
Vajuta Ctrl-b, lase klahvid lahti ja vajuta d. See on eraldumine (*detach*), mitte väljumine: sleep jätkab tööd.
Nüüd oled sessioonist väljas. tmux ls loetleb sessioonid; attach -t valib sessiooni, mille juurde naasta:
tmux ls
tmux attach -t opik
Kui minut pole möödunud, ootab sleep endiselt. Muidu näed taas viipa. Vajadusel katkesta ootamine Ctrl-c-ga. exit lõpetab sessioonis oleva shelli; kui see oli viimane aken, lõpeb ka sessioon. Ära aja exit-it segi eraldumisega.
Sama tööviis screen-iga
Kui masinas on tmux asemel screen, kasuta neid vasteid:
| Toiming | screen-i kuju |
|---|---|
| loo nimega sessioon | screen -S opik |
| eraldu sessiooni seest | Ctrl-a, seejärel d |
| loetle väljast sessioonid | screen -ls |
| naase väljast sessiooni | screen -r opik |
Vali üks tööriist; mõlemat pole vaja sama katse sees käivitada.
Sessioon või üks taustatöö?
tmux ja screen säilitavad terminali, millega saab uuesti ühenduda. Protsesside peatüki nohup muudab ühe töö käitumist ühenduse katkemisel ning disown eemaldab töö shelli tööde loendist; kumbki ei anna sama terminalivaadet tagasi.
Minitest
- Loo nimega sessioon, eraldu ja ühendu uuesti.
- Millisel masinal peab sessioon töötama, et sülearvuti sulgemine serveritööd ei lõpetaks?
- Mis vahe on eraldumisel,
exit-il ja serveri taaskäivitamisel?
Peatüki täisspikker
Praktiline kasutus
Eesmärk
Säilita interaktiivne serverisessioon ka SSH-ühenduse katkemisel.
Käsud ja näited
tmux new -s katseloo nimega sessioontmux lsloetle sessioonid välisest shellisttmux attach -t katseühendu olemasoleva sessioonigascreen -S katsealternatiiv: loo screeni sessioonscreen -r katsetaasühendu eraldatud screeniga
Märgid ja valikud
Ctrl-b, siis dtmux: eraldu, töö jätkubCtrl-a, siis dscreen: eraldu, töö jätkubexitlõpeta praeguse akna shell