Saltar al contenido

¿Qué debo hacer cuando aparece el error “Hay trabajos detenidos”?

Solución:

There are stopped jobs el mensaje es muy muy lejos ser un error. Es solo una notificación que le dice que intenta salir del shell, pero tiene uno o más trabajos / programas suspendidos (en su caso emacs que pusiste en segundo plano usando & al final de su comando). El sistema no le permite salir del shell y eliminar los trabajos a menos que lo desee. Puede hacer un par de cosas en respuesta a este mensaje:

  • usar jobs comando para decirle qué trabajo (s) ha suspendido
  • puede optar por agregar el (los) trabajo (s) en primer plano usando fg mando
  • Si no le importa si el trabajo (s) terminará, simplemente puede escribir exit de nuevo; mecanografía exit una segunda vez con o sin intervención jobs El comando resultará en la terminación de todos los trabajos suspendidos.

Para responder a la segunda pregunta, les diré que ni Ubuntu ni emacs se comportan así. Este es un comportamiento normal cuando pones una aplicación para que se ejecute en segundo plano. En este caso sudo está pidiendo una contraseña, pero está preguntando en segundo plano, por lo que no puede ver este hecho. Para verlo, debe traer de vuelta el trabajo en primer plano usando fg mando:

[email protected]: ~ $ sudo emacs tet.c &
[1] 7732
[email protected]: ~ $ # now sudo emacs run in background so you can't see nothing about what's happening
[email protected]: ~ $ fg
[sudo] password for radu:

Después de esto, puede escribir control+Z para volver a poner el trabajo en segundo plano si quieres. Luego puede ejecutar nuevamente el comando ‘fg’ para traer de vuelta el trabajo en primer plano y así sucesivamente.

Recibió el mensaje, porque el sistema le advierte sobre trabajos activos asociados con su shell actual.

Puede enumerar estos trabajos en ejecución / detenidos ejecutando: jobs,

Entonces puede realizar una de las siguientes acciones:

  • mover el último trabajo al primer plano de la siguiente manera: fg (opuesto de bg para el fondo),
  • correr disown para eliminar estos trabajos de su caparazón actual sin matarlos,
  • forzar el cierre de sesión eliminando estas tareas presionando Ctrl + D dos veces, lo mismo que escribir exit/logout dos veces,
  • elimine estos trabajos manualmente ejecutando: kill $(jobs -p) (agregar -9 por la fuerza)
  • si los rechaza y aún desea eliminar todos los procesos detenidos, intente:

    kill $(ps wuax | awk 'NR>1 && $8 ~ "T" {print $2}')


Para responder una pregunta sobre sudo, no le pedirá la contraseña, ya que requiere tener un terminal activo para recibir la contraseña de la entrada estándar, y al ejecutarla en segundo plano, el shell no espera a que finalice el comando, por lo que no No tengo posibilidad de interactuar con el comando.

En este caso, tienes 3 posibilidades:

  • ejecutar el comando sin pasar a segundo plano (&),
  • leer la contraseña de la entrada estándar en lugar del dispositivo terminal por sudo -S p.ej

    echo mypass | sudo emacs tet.c
    
  • configure sudo para que no solicite la contraseña mediante: visudo comando y edición sudoers expediente. Ver: Activar NOPASSWD para el usuario

Cuando te encuentras hay trabajos detenidos error:

  1. escribejobs-> verá los trabajos con estado detenido
  2. y luego escribe exit-> puedes salir de la terminal
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *