Ho un processo su una macchina che ho interrotto (con un Ctrl-Z). Dopo aver ssato sulla macchina, come posso riprendere il processo?Come riprendere il lavoro interrotto su un computer remoto dato pid?
risposta
È necessario trovare il PID e quindi il numero kill -CONT <pid>
.
È possibile trovare il PID utilizzando ps
con alcune opzioni per produrre un output esteso. I lavori interrotti hanno un T
nella colonna STAT
(o S
).
Se riesci a continuare il processo ma non ha più un terminale di controllo (e ne ha bisogno uno), potrebbe bloccarsi o andare in loop: tieni d'occhio l'utilizzo della CPU.
Questo ('kill -CONT ...') è il trucco giusto in generale, ma fai attenzione a due ulteriori cose: (1) Questo confonderà leggermente la sua shell madre (chiamiamola * P * per Parent), che non ottiene si noti che il processo (chiamiamolo * T *, per sTopped) è stato continuato così * P * pensa * T * è ancora fermo. (2) Se il processo * T * * è * ancora collegato al suo terminale di controllo e prova a fare alcuni "tty ops", la shell non avrà trasferito le informazioni del gruppo di controllo * del terminale * e * T * si fermerà immediatamente di nuovo con 'SIGTTIN' o' SIGTTOU'. – torek
A questo punto, è probabilmente una buona idea menzionare 'screen' o' tmux'. – BraveNewCurrency
You can type in fg
to resume process. Se si dispone di più processi, è possibile digitare fg processname
, (per esempio fg vim
) o fg job_id
.
Per trovare l'ID del lavoro, utilizzare il comando jobs
.
citazione pertinente da wikipedia su ciò che fa:
fg è un comando di controllo lavoro nei sistemi operativi di tipo Unix Unix e che riprende l'esecuzione di un processo sospeso portando in primo piano e quindi riorientamento delle sue flussi di input e output standard al terminale dell'utente.
fg richiede il numero di lavoro. Sto cercando di farlo da remoto. –
digita 'lavori' per ottenere l'elenco dei lavori – jh314
@ jh314:' jobs' è una shell incorporata (necessariamente così, dato che i numeri di lavoro sono locali per quel processo) quindi dovrebbe avere accesso al terminale su che la shell è in esecuzione, annullando la necessità di un curriculum "non shell". Questo è possibile se si impostano le cose in anticipo (ad es. Usando 'screen') o si ha accesso al desktop remoto, ma sta cercando di farlo senza quelle. – torek
Per scoprire job-id e PID, utilizzare "posti di lavoro -l", in questo modo:
$ jobs -l
[1]+ 3729 Stopped vim clustertst.cpp
La prima colonna è job_id, e il secondo è pid.
- 1. come riprendere un download interrotto
- 2. come riprendere un download interrotto - parte 2
- 3. Avvio in remoto del pid di un lavoro
- 4. Docker. Come riprendere il download dell'immagine quando viene interrotto?
- 5. Come uccidere un processo in Java, dato un PID specifico
- 6. Dato un PID figlio come si può ottenere il PID genitore
- 7. WaitForExit per un processo su un computer remoto
- 8. Come copiare un file dal server remoto al computer locale?
- 9. Riavvia IIS sul computer remoto
- 10. Può un Jenkins Trigger un lavoro su un jenkins remoto
- 11. Computer client di debug remoto
- 12. Spostamento della copia di lavoro svn su un altro computer
- 13. Come uccidere il processo sul computer remoto con wmi
- 14. Ripristino dump sul computer remoto
- 15. WMI per riavviare computer remoto
- 16. EventLogQuery reader per computer remoto?
- 17. Debug remoto: come avviare il processo di debug su un altro computer
- 18. Come riprendere il mediaplayer?
- 19. Tipo di collegamento in Plone 4.0.2 interrotto durante il lavoro
- 20. RxJava: come riprendere il lavoro di un osservabile se si verifica un cambio di configurazione?
- 21. Lavoro Web di Azure arrestato/interrotto
- 22. eseguire comandi sul computer remoto tramite PHP
- 23. Come identificare un dispositivo USB dato il suo VID e PID
- 24. Guida per spiegare perché sviluppare software su un computer fisico piuttosto che tramite un desktop remoto
- 25. Come ripristinare un caricamento interrotto in HTML5
- 26. sito l'accesso IIS7 dal computer remoto
- 27. Servizio di tracciamento personalizzato SQL WF Interrotto il lavoro per i vecchi flussi di lavoro?
- 28. Come sospendere e riprendere un'applicazione su Windows?
- 29. Come eseguire il debug di un'applicazione Asp.Net Mvc in Visual Studio 2012 da un computer remoto
- 30. Python - Rileva se il computer remoto è acceso
Per chiarire la domanda, è possibile notare che si sta provando a farlo da una shell * diversa * e che non si dispone di accessi in stile desktop remoto, ecc. – torek