2012-08-13 15 views
23

Beh, va così, ho dovuto eseguire un programma da casa mia tramite ssh nel server della mia istituzione. Non volevo che il mio programma venisse chiuso alla chiusura della sessione (non sapevo di screen).Come riportare un processo in background orfano in primo piano?

Quello che ho fatto è stato premere Ctrl+Z e quindi digitare bg in modo che venga eseguito in background. La sessione è stata interrotta. Ora quando accedo al computer dell'istituzione e digito ps -u username, viene visualizzato che il programma è ancora in esecuzione ma non riesco a portarlo in primo piano.

Ho provato fg e jobs ma questi comandi non mi danno alcun risultato.
Per favore qualcuno mi aiuti ..

risposta

17

Se è stato avviato il processo senza utilizzare il comando "schermo", non è possibile eseguire tale processo. Fondamentalmente non è possibile rilevare un processo che è stato avviato in una shell diversa.

Al termine della sessione, il processo di bg passerà allo stato di scollegamento. Sebbene tu possa essere in grado di vedere i dettagli di tale processo non puoi fgarli a una shell dal login in seguito

8

Se un processo è rimasto orfano, non puoi "ripararlo" in una shell diversa e usare fg, bg ,^Z,^C, e così via per controllarlo.

Sembra che tu stia chiedendo implicitamente come controllare un processo orfano. Dato che puoi vedere il processo usando il comando ps, hai il suo pid. È possibile utilizzare questo pid come argomento per il comando kill, che consente di interrompere, continuare o terminare il processo. Non è possibile attendere il completamento del processo, ma è possibile eseguire il polling per verificare se esiste ancora utilizzando il comando "kill -0 <pid>".