¿Cómo reiniciar Gnome-shell, después de que dejó de responder / se congeló?


123

A veces, mi caparazón de gnomo se congela. Puedo ver (escuchar) procesos en segundo plano funcionando (reproducir música), pero no puedo hacer nada en gnome. No Alt+ F2+ R.

Puedo cambiar a la consola usando: Ctrl+ Alt+ F1, iniciar sesión como el mismo usuario y ejecutar:

gnome-shell --replace

y regreso Ctrl+ F7, pero luego, tengo un comportamiento extraño. Por ejemplo, no puedo editar las conexiones de red. No puedo cerrar sesión también. ¿Cuál es la forma correcta de reiniciar gnome-shell?


¿Se congela gnome-shell al usar la función de búsqueda en gnome-shell overview, o en qué ocasión en particular, si puede verlo?
v2r

1
No, se congela después de iniciar sesión (principalmente), generalmente después de desacoplar.
jk_

2
Hasta ahora, no encontré una solución que funcione. Al final, termino con esta solución .
jk_

Si usa alguna extensión de shell de: extensions.gnome.org, desactívelas todas y reinicie, para ver si una de ellas causó el problema. ¡Utilicé una versión anterior de gnome-shell y tuve muchos problemas debido a esa causa exacta! (¡¿Tal vez es tan simple como eso ?!)
v2r

1
Traté de desactivarlos a todos, aún teniendo el problema :(
jk_

Respuestas:


173

La forma más fácil es presionar Alt+ F2, escriba rentonces Enter. Esto funcionará tanto tiempo que el shell sea utilizable.

También puede enviar SIGQUITal gnome-shellproceso que terminará solo el shell:

killall -3 gnome-shell

Otros métodos usan medios más destructivos, que cierran todas las aplicaciones, esto no debería.


3
¿+1 para el SIGHUPconsejo, sin embargo, no sería el comando correcto killall -1 gnome-shell? Al menos según man 7 signal, el valor para SIGHUPes 1. El valor 3 corresponde a SIGQUIT. Envié el valor 1 a Gnome Shell y se reinició limpiamente como se esperaba.
Chriki

@Chriki, sí, era sigquit, a través de la mayoría de las señales haría que el proceso de gnome-shell finalizara.
Braiam

Probé esto en Fedora 25 y killall -3 gnome-shellresultó en la eliminación de todas las aplicaciones para mí.
Comfreak

66
Ojalá también pudiéramos usar un comando de terminal que tenga exactamente el mismo efecto que Alt+F2y r, es decir, sin borrar toda la pantalla ...
Sadi

Me encontré con el problema de que Gnome se bloqueara mucho en mi ubuntu vm, tenía que reiniciar la VM cada vez que sucedía. Ser capaz de ingresar y usar este comando resuelve ese problema, un millón de gracias.
Nathan

32
  • Si desea pedir "amablemente" a gnome-shell para reiniciarse a sí mismo, puede llamar a su función de reinicio interno a través de dbus con el siguiente comando (suponiendo que DBUS_SESSION_BUS_ADDRESSenv var esté configurado en el valor correcto y se ejecute como el mismo usuario):

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
    
  • Si desea ejecutar una nueva instancia, gnome-shell --replacedebería hacerlo bien. En la consola, debe definir las variables de entorno necesarias, como DISPLAY, DBUS*etc. Referirse a/proc/$gnome_shell_pid/environ

  • Si desea reiniciar uno existente, killall -HUP gnome-shelllo hará. Sin embargo, si lo hace con demasiada frecuencia, gnome-shell podría deshabilitar todas las extensiones, cerrar la sesión forzosamente o comportarse de una manera no amigable para el usuario.

Creé una función de shell que establece DBUS_SESSION_BUS_ADDRESS desde el entorno de proceso gnome-shell (para que pueda logout otheruser1 otheruser2) askubuntu.com/a/874504/17941
sehe

3
Obtuve el error Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service filessin sudo y Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11con sudo.
Seanny123

7

Aquí hay una solución alternativa diferente:

  1. Inicie sesión en una terminal local presionando CTRL+ ALT+ F1.
  2. Ejecute el comando:

    sudo kill -HUP $(pidof gnome-shell)
    
  3. Regrese a la interfaz gráfica presionando CTRL+ ALT+ F7.

PD: estoy usando lightdm en lugar de gdm3.


1
Simple, y funciona como un encanto! (Al menos para mí)
Katai

6

Si ha instalado ubuntu gnome, que debería tener, es posible que esté utilizando el administrador de pantalla gnome. En ese caso, debe cambiar a otro TTY, como Ctrl + Alt + F4 y luego

sudo service gdm restart

También escribí un artículo sobre tal situación recientemente:

¡Ayuda, mi escritorio Linux se cuelga!

¡La mejor de las suertes!


66
tenga cuidado , lo hice en el mismo TTY y esto mata mi sesión actual ..
RousseauAlexandre

esto jodió por completo la sesión actual: comenzó a parpadear y luego fue al nirvana ... tuve que reiniciar.
Nik O'Lai

5

Como no está satisfecho gnome-shell --replace, puede intentar reiniciar el administrador de pantalla.

sudo service lightdm restart

Creo que eso matará otros procesos que está ejecutando. Consulte también http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-if-ever/

Si realmente te gusta algo que te congela todo el tiempo, habilita el SysRq como se menciona en https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst , y luego dale <alt><sysrq/print_screen_key><k>a matar lo que esté allí en el pantalla.


3
Reiniciar lighdm funciona, pero quiero evitarlo, porque tengo que volver a abrir todo desde cero. Especialmente si sé que es un problema de un Gnome-shell y reiniciarlo casi funciona.
jk_

No conozco otros métodos para restringir solo el shell gnome. ¿Intentaste si DISPLAY=:7 gnome-shell --replacefunciona?
Jay Aurabind

1
No, no lo hace, yo uso display, cuando wmuestra muestra diferente a : 0 . Si uso una pantalla incorrecta me sale un error.
jk_

Lo siento, no tengo opciones. Probablemente deberías preguntar en la lista de correo de gnome user / developer. Primero descubra por qué tiene anormalidades alt-f2-ro gnome-shell --replacecuándo es la forma recomendada del gnomo.
Jay Aurabind

Yo también. Incluso seguí este enlace configurando más variables ENV, pero todavía no puedo editar las conexiones de red al reiniciar gnome-shell desde un terminal diferente. Al final, termino con este truco
jk_

2

A veces tengo el mismo problema que usted describe, y mi solución es:

Ctrl+ Alt+ F1, inicie sesión como el mismo usuario y ejecute:

sudo pkill -9 ^gnome-shell

Y regresa con Ctrl+ Alt+F7

Si esta es la forma correcta, no lo sé. Para mí funciona todo el tiempo.


3
Esto matará a todas las instancias de usuarios de gnome-shell que pueden no ser algo que desee hacer en un escenario multiusuario. Normalmente solo tienes que matar a tu propio (pkill -HUP gnome-shell)
Steeve McCauley

3
kill -9 es un poco destructivo, creo: robertwe.github.io/2015/03/19/why-you-shoudnt-use-kill--9
Robert

genial, me funciona ...! Me salvas el día. apreciado.
NomanJaved

2

Reiniciar X

  • Primero encuentre qué administrador de pantalla usa su Ubuntu con el siguiente comando:

    cat /etc/X11/default-display-manager
    

    en mi caso es /usr/sbin/gdm3

    Desde adentro X o hacia afuera X

  • Para los métodos 1 a 4, descubra qué pantalla está utilizando mediante el wcomando.

    w
    

    la respuesta puede ser, por ejemplo tty3, (por lo tanto, mi tecla (regresar a mi pantalla) es Ctrl + Alt + F3

Métodos

  1. Ctrl + Alt + F1 para salir, y Ctrl + Alt + F3 para recuperar uno
  2. sudo /etc/init.d/gdm3 restart
  3. systemctl restart gdm.service
  4. sudo service gdm3 restart
  5. dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
  6. Una manera fácil es presionar Alt + F2, escribir y rluego presionar Entrar. Esto funcionará tanto tiempo que el shell no sea inutilizable.

El método 5 se levanta literalmente de la respuesta de korc y 6 de la respuesta de Braiam . El plagio no está en contra de las reglas aquí, pero definitivamente no es genial. Todo lo que realmente necesita hacer es indicar que el trabajo no es suyo poniéndolo entre comillas y atribuirlo incluyendo un enlace a la publicación de origen y un enlace a la página de perfil del autor. Para más detalles, vea esta publicación de blog: Atribución requerida
wjandrea

1
  1. Presione Ctrl + Alt + F2 para cambiar a una ventana de terminal. A veces, esto no es posible.

  2. Presione Alt + SysRq + R para obtener el teclado.

  3. Si presionó Ctrl + Alt + F2 antes de fallar, intente nuevamente ahora.

  4. Presione Alt + SysRq + E para finalizar todos los procesos.

  5. Presione Alt + SysRq + I para eliminar todos los procesos.

  6. Presione Alt + SysRq + S para sincronizar sus discos.

  7. Espere el mensaje OK o Hecho. Si no ve un mensaje, mire la luz de su HDD para ver si Sync marcó la diferencia.

  8. Presione Alt + SysRq + U para desmontar todas las unidades de disco.

  9. Espere el mensaje OK o Hecho. Si no ve un mensaje en 15-30 segundos, suponga que los discos están desmontados (o que no es posible desmontarlos) y continúe.

  10. Presione Alt + SysRq + B para reiniciar.


0

kill -15 gnome-shellno funciona para mí pero kill -9sí. Creo que se debe a que kill -9desencadena una falla predeterminada que hace que gnome-shell se reinicie, mientras kill -15que no lo hace.


2
kill -9no desencadena una segfault. Envía SIGKILL, una señal inalcanzable para la cual la única acción es salir inmediatamente. Solo debe usarse cuando la aplicación no responde a SIGTERM, que es 15.
muru

pkill -11 gnome-shelldesencadenaría una segfault, ya que eso es literalmente lo que hace la señal 11. Por cierto, killnecesita una ID de proceso, NO un nombre de proceso. ¿Quiso decir pkillo killall?
TSJNachos117
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.