¿Cómo enviar un proceso a segundo plano y en primer plano?

17

Si lo hago ping google.com &, el proceso pasa a un segundo plano y sigue mostrándome los detalles del ping. Todavía puedo usar la terminal con otros comandos, pero la salida del ping y la salida de otros comandos se mezclan (lo cual no es un problema), pero no puedo terminar este proceso de ping en absoluto.

Para eso quiero ponerlo en primer plano y luego presionar ctrl + co algo. Intenté usarlo fg, pero tampoco funcionó. Entonces, ¿cómo hago para ping google.com &volver al primer plano después de presionar la tecla de retorno al final de mi comando ping?

posixKing
fuente
2
Parece que el problema que realmente quieres resolver es matar un trabajo en segundo plano; no hay necesidad de ponerlo en primer plano. Úselo jobspara encontrar la ID jiddel trabajo del proceso en segundo plano, y luego simplemente haga kill %jidpara matarlo.
cabeza de jardín

Respuestas:

30

fges el comando correcto para poner en primer plano un trabajo, pero si hay más de un trabajo en ejecución, debe especificar el número de trabajo. Si solo escribe fg, el último trabajo en segundo plano (considerado el trabajo actual por el shell) se pondrá en primer plano.

Obtenga los trabajos actuales:

$ jobs
[1]+     ping google.com &

Poner en primer plano el trabajo especificando el número:

fg %1

El comando puede dividirse por salida del proceso en ejecución, pero seguirá funcionando, puede ignorar la interrupción.

Luego presiona ctrl+ cpara interrumpir y detener el proceso

Como se menciona en un comentario, también puede enviar señales por número de trabajo, por ejemplo kill %1

Para completar, si no usó el &al momento de llamar al proceso, puede enviarlo a un segundo plano congelando primero con ctrl+ zy luego escribiendobg

Zanna
fuente
1
Simplemente fgsin argumento parece funcionar también, al menos cuando solo se tiene un trabajo en segundo plano.
Cedric Reichenbach
1
¡@CedricReichenbach editado!
Zanna
-2

Para responder a la pregunta formulada, a saber, ¿Cómo enviar la salida de un proceso a segundo plano y primer plano? , el teecomando hará:

En informática, tee es un comando en intérpretes de línea de comandos (shells) que utiliza flujos estándar que lee la entrada estándar y la escribe en la salida estándar y en uno o más archivos, duplicando efectivamente su entrada. https://en.wikipedia.org/wiki/Tee_(command)

erqe4tjwtjwertjwrtj
fuente
55
Estás malentendido algo aquí ...
Byte Commander