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íaexit
una segunda vez con o sin intervenciónjobs
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 debg
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.ejecho mypass | sudo emacs tet.c
-
configure sudo para que no solicite la contraseña mediante:
visudo
comando y ediciónsudoers
expediente. Ver: ActivarNOPASSWD
para el usuario
Cuando te encuentras hay trabajos detenidos error:
- escribe
jobs
-> verá los trabajos con estado detenido - y luego escribe
exit
-> puedes salir de la terminal