Uneori am timp procesele pe care vreau să lovi cu piciorul off înainte de a merge acasă, așa că am crea o sesiune SSH la server pentru a începe procesul, dar apoi vreau să închid laptop-ul meu și du-te acasă și mai târziu, după cină, vreau să verificați pe procesul care am început înainte de a părăsi locul de muncă. Cum pot face asta cu SSH? Înțelegerea mea este că, dacă te rupe conexiune SSH va rupe, de asemenea, o sesiune de logare pe server, prin urmare, uciderea lung proces care rulează.
Folosesc nohup` pentru a face procesul ignora hangup semnal:
$ nohup long-running-process &
$ exit
Vrei să fii folosind GNU Screen. Este super minunat!
ssh [email protected]
screen #start a screen session
run-a-long-process
CTRL+a , : d să se desprindă de pe ecran sesiune
exit #disconnect from the server, while run-a-long-process continues
Când te întorci la laptop:
ssh [email protected]
screen -r #resume the screen session
Apoi, a verifica afară progresul tău lung proces!
"ecran" este un instrument foarte cuprinzător, și poate face mult mai mult decât ceea ce am'am descris-o. În timp ce într-o sesiune screen, incearca ctrl+o,? pentru a învăța câteva comenzi comune. Probabil cele mai frecvente sunt:
Dacă te-ai't planificate înainte și configurare "ecran", etc. doar să faceți următoarele:
Ctrl-Z
a suspenda prim-plan procesul. Acest lucru va raportului de muncă # a suspendat procesul, de exemplu:1+ a Oprit processName
Trimite processName la fundal cu
bg %1(folosind orice loc de muncă # e urma
%). Acest lucru va relua
processName` în fundal.
Renega processName " cu "renega %1" sau " renega PID
. Folosi -h
pavilion, dacă doriți să mențină dreptul de proprietate până nu se încheie cu shell-ul curent.
Ce doriți să-l utilizați este ecranul sau chiar mai bine un user-friendly înveliș în jurul valorii de ecran numit împreună.
Ecran vă permite să rulați mai multe terminal virtual de ședințe din aceeași sesiune ssh. O tutorial și ajutor sunt disponibile.
împreună este un înveliș care vă permite să deschideți cu ușurință noile ecrane cu o funcție de simplu cheie în loc de cheie combinație de ctrl-o. Ea arată, de asemenea, o linie de stare, cu toate terminalele virtuale care poate fi numit.
O altă caracteristică frumos este faptul că tot ecranul poate rămâne sus în timp ce conexiune ssh este deconectat. Doar conectați din nou prin ssh și de apel împreună și totul este ca înainte.
La ultima unele imagini de împreună.
Ar fi de remarcat faptul că
`ssh -t lala ecran -rxU " moo " va atașa la moo sesiune gazdă lala
`ssh -t lala ecran -S " moo " va crea moo sesiune gazdă lala
și
ssh -t lala ecran -S moo quux
va crea moo sesiune gazdă lala programul și a alerga quux, renunti la sesiunea de finalizare.
Puteți găsi un ghid bun aici: Păstra Sesiune SSH Execută atunci când Vă Deconectați
sudo apt-get install screen
Acum puteți începe o nouă sesiune screen doar prin tastarea ecran la linia de comandă. Veți fi afișate câteva informații despre ecran. A lovi enter și vei fi la un prompt.
Pentru a deconecta (dar lasă sesiune de funcționare) Hit Ctrl + A și apoi Ctrl + : D în succesiune imediată. Veți vedea mesajul [detașat]
Să se reconecteze la o sesiune deja rulează
screen -r
Să se reconecteze la o sesiune existentă sau creați una nouă, dacă nu există nici una
screen -D -r
Pentru a crea o nouă fereastră în care rulează pe ecran sesiune Hit Ctrl + A și apoi C în succesiune imediată. Veți vedea un nou prompt.
Pentru a comuta la un ecran fereastră la alta Hit Ctrl + A și apoi Ctrl + A în succesiune imediată.
Pentru a deschide lista de ecran windows Hit Ctrl + A și apoi W în succesiune imediată
Întrebare veche, ciudată încă nimeni nu sfătuiți tmux, care acționează ca un înveliș pentru n console și păstrați-le deschise până când este nevoie. Acest lucru permite mai mult control, pe lângă o serie de funcții tmux a. L's ușor de a gestiona, doar executa tmux, care va aduce în coajă sale, începe looong loc de muncă, apoi apăsați ctrl+b, urmat de d (desprinde) (ctrl+beste "ok google" de tmux, și " d " este comanda pentru a închide fără a ieși din shell). Acest lucru funcționează de fapt dacă ai închide, de exemplu, chit. După cină, atunci când vă conectați din nou, puteți redeschide tmux cu tmux atașați să-l vedem pe ecran exact așa cum ai plecat. Ceva ce-mi place este divizarea panoul: ctrl+b "si apoi apasati" "
. Pentru a schimba de la un panou la altul, ctrl+b
și apoi apăsați pe săgeată sus/jos.
Eu folosesc NX NoMachine, care este gratuit pentru mine, pentru că-l's doar eu. În esență, se execută o sesiune X pe server care vă puteți conecta la și deconectați-l de peste si peste. X-a sesiune continuă să funcționeze atunci când te're nu este conectat. Conexiunile pot fi făcute de oriunde. Puteți alege între ferestre plutitoare sau o singură fereastră care conține un întreg desktop (de exemplu, un complet de desktop Gnome). Client (care ar rula pe laptop) poate fi rulat pe Linux, MacOS, Solaris sau Microsoft Windows. În acest din urmă caz, dacă alegeți ferestre plutitoare, ele apar în mod individual din bara de Activități Windows.
Folosesc Windows XP pe laptop (pe care am nevoie pentru anumite Ferestre-specifice hardware am) ca un front-end pentru două servere Linux folosind NX Nomachine. Pot chiar să imprimați la imprimantă atașată la laptop-ul meu Windows la Linux.
Tmux este o bună opțiune disponibilă pentru a rula lungă de procese care rulează în fundal.
Am să continui să alerg mult-procesele care rulează pe un google cloud platform's VM exemplu/server (cu sistem de OPERARE: Ubuntu 16.0). În cazul în care trebuie să înceapă SSH terminal și de la terminal, trebuie să țineți terminalul conectat pentru a rula procesul. Acum depinde de acest lucru, totul este bine. Dar stai, dacă conexiunea cu SSH terminal este reziliat apoi mult-procesele opri imediat și, prin urmare, trebuie să re-rula-le din nou după ce ssh terminal este repornit sau de la un nou terminal ssh.
Am găsit tmux` este o soluție bună pentru a evita încetarea de procese care vrem să ruleze chiar și după ce terminalul este închis.
Multiplexor Terminal (tmux
) pentru a începe tmux
sesiune:
tmux
. Se va deschide o fereastră în același terminal.Acum, chiar dacă SSH terminal este închis/reziliat brusc tmux sesiune va continua să fie difuzate la început lon-procesele care rulează pe instanță/server.
În cazul în care conexiunea reziliat apoi cum să-l reconectați din nou pentru a vedea procesele care rulează în tmux sesiune în fundal:
Vrei pentru a termina tmux sesiune:
(Rețineți că: Dacă vom folosi `tmux desprinde de comandă: se va ieși din tmux sesiune de fereastră/terminal fără încheiere/oprirea tmux sesiuni)
Pentru mai multe detalii vă rugăm să consultați următorul articol: