Estaba trabajando normalmente y de repente un programa colapsó: dejó de responder y su ventana se volvió gris. Después de eso apareció este mensaje preguntando qué hacer: cerrar el programa o esperar a que responda.
Seleccioné cerrar el programa, pero no funcionó como esperaba: todo Ubuntu se congeló y no pude hacer nada.
Entonces me doy cuenta de que escribiendo Ctrl + Alt + t
podía abrir la terminal, y funcionó: abrió la terminal.Pero no sabía qué hacer a continuación.
Entonces mi pregunta es:¿Qué hacer desde la terminal si un programa se congela?En mi caso fue nautilus (me estaba conectando a un servidor remoto, usándolo como programa FTP) y terminé reiniciando la máquina con sudo reboot
.
Apesta. hubiera sido mucho mejorpara cerrar el programa que no responde, pero ¿cómo puedo hacerlo? ¿Y qué pasa si no sé el nombre del programa que no responde?
Para su información, he leído este tema "Los elementos de la interfaz de usuario dejan de responder por completo" y no creo que sea el mismo caso aquí, porque normalmente no tengo este problema, es algo poco común, y la memoria funciona bien y la máquina es bastante nueva (Intel Core i7, 8 Gb de ram ).
Respuesta1
Tu puedes hacer xkill
. Esta pequeña e ingeniosa utilidad destruye automáticamente la siguiente ventana en la que hace clic.
Otra opción que puedes usar es algo llamado top
o htop
. Busque un proceso extraño, especialmente algo marcado como "zombi" o que consuma muchos recursos del sistema. Luego puedes matarlo usando la Kclave. Utilice el código de eliminación 9, ya que provoca una eliminación instantánea y forzada del proceso.
Digamos que el programa malo es nautilus
. Utilice uno de estos métodos:
- Úselo
xkill
en la terminal y haga clic en la ventana de Nautilus. X finalizará su sesión, provocando que Nautilus se bloquee. Envíe spam con la ESCclave durante unos segundos para asegurarse de que Xkill aún no se esté ejecutando. killall -9 nautilus
- Corre
top
, búscalonautilus
y mátalo desde arriba.
Tenga en cuenta que es posible que necesite utilizar sudo
privilegios para finalizar algunos procesos.
Respuesta2
Una de las grandes ventajas que tenemos de un sistema basado en terminal es que la respuesta es un rotundo SÍ.
Lo que normalmente hago es cambiar a la terminal 1 (su escritorio siempre está en la terminal 7) con control- alt- f1.
Si sabe cuál es el programa, esto será bastante fácil: busque el ID del proceso de esa tarea y elimínelo. La tarea desaparecerá en la terminal 7 y, si esto soluciona el problema, su sistema responderá nuevamente.
Ejemplo de uso de Firefox: cuando inicia Firefox, obtiene un ID de proceso y puede verlos con ps -ef | grep firefox
. Reemplaza Firefox con lo que quieras buscar.
ps -ef |grep firefox
rinzwind 5046 1484 48 19:52 ? 00:00:01 /usr/lib/firefox/firefox
rinzwind 5113 4992 0 19:52 pts/4 00:00:00 grep --color=auto firefox
(el proceso que se refiere al grep es mi comando)
El primer número detrás de mi nombre de inicio de sesión es el ID del proceso. kill -9 5046
matará a Firefox:
~$ kill -9 5046
~$ ps -ef |grep firefox
rinzwind 5148 4992 0 19:54 pts/4 00:00:00 grep --color=auto firefox
y Firefox desapareció de mi escritorio.
El problema normalmente es identificar el ID de proceso correcto: cuando tienes 5 sesiones de Firefox abiertas... conseguir el correcto será un problema. Entonces es posible que necesites agregar algo más de lógica para reducirlo.
Advertencia: use el sentido común. Se debe evitar eliminar los ID de proceso inferiores (menos de 500).