Spegnimento del PC senza uccidere le sessioni SSH


14

Ho alcuni processi pesanti e lunghi in esecuzione su macchine Linux remote. Uso il mio laptop per SSH su queste macchine ed eseguo i processi dal mio divano.

MA, quando voglio spegnere il mio laptop, sono nei guai poiché i processi remoti vengono interrotti.

Ho fatto le mie ricerche e ho scoperto che "schermo" è un'ottima soluzione per me, lo è! (Finché non SPengo il mio laptop). Non esiste un modo per "persistere" nelle sessioni "schermo" in modo da poterlo chiudere e quindi ricollegare a una sessione?


Stai eseguendo lo schermo sui sistemi Linux remoti?
Sam Miller,

è possibile mettere in background i processi?
ennuikiller,

Risposte:


32

Sembra che tu stia eseguendo la sessione dello schermo sul tuo laptop. Quindi inviare da quella sessione dello schermo agli host remoti. Lo spegnimento del laptop interromperà il processo dello schermo locale, che a sua volta uccide la sessione SSH.

Quello che vuoi fare è ssh dal tuo laptop agli host remoti. Quindi avviare una sessione dello schermo sull'host remoto. Quando il laptop è spento, la sessione SSH morirà, ma la sessione dello schermo remoto persiste.

La prossima volta che accedi al sistema remoto, puoi riconnetterti alla sessione dello schermo con "screen -r" o se hai più sessioni dello schermo "screen -r <pid>".

Nota: se si è dimenticato di staccarsi dalla sessione dello schermo remoto prima che ssh venga ucciso, la sessione dello schermo potrebbe pensare che sia ancora collegata. In questo caso, dovrai fare "screen -dr <pid>" per staccare prima la sessione.


4
A proposito, se ricordo bene, premendo Ctrl+Aseguito da Dquando ci si trova screensi staccherà la sessione dello schermo.
David Z,

@David questo è corretto, puoi anche semplicemente chiudere il tuo terminale o sessione ssh e lo schermo rimarrà aperto. "screen -raAd" verrà ricollegato.
Chris,

Come posso avviare una sessione dello schermo sull'host remoto?
stupidità

15

È possibile utilizzare nohupper avviare un processo che deve continuare a essere eseguito dopo aver effettuato il logout da una macchina. Potrebbe essere quello che stai cercando.


Per un processo già in esecuzione, puoi fare ^ Z e quindi disowncreare quello che credo sia un effetto equivalente. disownè un basismo che può essere o non essere disponibile su altre shell.
intuito l'

+1 per nohup. Il problema ^Zè che mette in pausa il processo. Non c'è modo di avviare un processo in background, ma mantenerlo in esecuzione senza un singhiozzo.
Detly

6

Se interrompi la sessione remota screen, puoi spegnere in sicurezza il tuo laptop.


Non sono sicuro che sia universalmente ovvio che la sessione dello schermo da cui si sta staccando deve trovarsi sul server remoto.
intuito l'


2

Usa nohup. Un'altra scelta per usare VNC. Crea una sessione VNC sul server. Quindi connettiti ad esso ogni volta che lavori. (Più utile quando il lungo processo utilizza una GUI, ad esempio un IDE)


0

Se questi server hanno un ILO / DRAC / Altro KVM remoto, ecc., Potresti essere in grado di collegarti alla console e interagire lì. Poiché le sessioni avviate sono essenzialmente locali, interrompere la connessione dal laptop non farà nulla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.