2011-04-08 09:38:29 +0000 2011-04-08 09:38:29 +0000
353
353

¿Cómo puedo reanudar un trabajo detenido en Linux?

¿Cómo puedo reanudar un trabajo detenido en Linux? Estaba usando emacs y accidentalmente golpeé ctrl-z lo que me hizo regresar a la consola. Puedo verlo cuando tecleo ‘jobs’

[*****]$ jobs
[1]+ Stopped emacs test_queue.cpp

Respuestas (5)

404
404
404
2011-04-08 09:39:38 +0000

El comando fg es lo que quieres usar. También puedes darle un número de trabajo si hay más de un trabajo detenido.

268
268
268
2011-04-08 11:55:01 +0000

Los comandos generales de control de trabajo en Linux son:

  • jobs - lista los trabajos actuales
  • fg - reanudar el trabajo que sigue en la cola
  • fg %[número] - reanudar el trabajo [número]
  • bg - empujar el siguiente trabajo de la cola al fondo
  • bg %[número] - Empujar el trabajo [número] al fondo
  • matar %[número] - Matar el trabajo numerado [número]
  • matar -[señal] %[número] - Enviar la señal [señal] al trabajo número [número]
  • descargar %[número] - Desactivar el proceso(no más terminal será propietario), así que el comando estará vivo incluso después de cerrar la terminal.

Eso es casi todo. Fíjate en el % frente al número de trabajo en los comandos - esto es lo que indica que matar es hablar de trabajos y no de procesos.

48
48
48
2013-08-26 21:04:40 +0000

También puedes teclear %<process_name>; por ejemplo, si pulsas Ctrl-Z en emacs, entonces puedes teclear %emacs en la consola y traerlo de vuelta al primer plano.

34
34
34
2011-04-08 14:03:36 +0000

Sólo para añadir a las otras respuestas, bash te permite saltar el fg si especificas un número de trabajo.

Por ejemplo, estos son equivalentes y reanudan el último trabajo:

%
%%
fg
fg %

Estos reanudan el trabajo #4:

%4
fg 4
23
23
23
2016-02-04 19:49:59 +0000

Si no lo lanzó desde la terminal actual, use ps aux | grep <process name> para encontrar el número de proceso (pid), y luego reanúdelo con:

kill -SIGCONT <pid>

(A pesar del nombre, kill es simplemente una herramienta para enviar una señal al proceso, permitiendo que los procesos se comuniquen entre sí. Una “señal de matanza” es sólo una de las muchas señales estándar)

Consejo de bonificación: Envuelva el primer carácter del nombre del proceso con [] para evitar que el propio comando grep aparezca en los resultados. Por ejemplo, para encontrar el proceso emacs, utilice ps aux | grep [e]macs