4 votos

Gnome-terminal de solicitar la confirmación del usuario antes de cerrar

Cuando abra gnome-terminal sin opciones y ejecutar un bloqueo de comando (por ejemplo python3, vim o cat) y, a continuación, intenta cerrar la ventana mediante el botón cerrar (es decir, x botón en la barra de título) o algún atajo de teclado, una ventana de confirmación que se muestra:

enter image description here

Sin embargo, cuando se abra gnome-terminal con un ejecutado el comando especificado, es decir, en forma de gnome-terminal -- python3, la ventana de confirmación, ya no aparece y se cierra la ventana de la derecha después de que usted (accidentalmente) haga clic en el botón cerrar.

Es posible mostrar la ventana de confirmación, incluso cuando utilice el formulario gnome-terminal -- <command>? Si eso es imposible, ¿hay soluciones?


Ambientes:

$ gnome-terminal --version
# GNOME Terminal 3.36.2 using VTE 0.60.3 +BIDI +GNUTLS +ICU +SYSTEMD

Lo que he Intentado:

  • Equipar el comando ejecutado con controladores de señal para todos los admite señales de no trabajar; la ventana estaba cerrada aún sin confirmación aunque el proceso sobrevivido el cierre, mientras que la captura de SIGHUP (tres veces), SIGCONT (una vez) y SIGWINCH (una vez). Tenía, además, para ejecutar kill -SIGKILL <process id> a matar el proceso.

  • He encontrado una excepción. Al ejecutar gnome-terminal -- bash, la confirmación se muestra (aunque esto no es por defecto de la misma como gnome-terminal).

2voto

Mateusz Puntos 11

GNOME Terminal comprueba si hay primer plano, proceso iniciado por shell (ver terminal_screen_has_foreground_process función)

Usted puede utilizar el sh para crear nuevos procesos y gnome-terminal a preguntar antes de salir de esta manera:

gnome-terminal -- sh -i -c python3

Actualización: El mismo efecto puede lograrse con bash mediante secuencias de comandos personalizada:

gnome-terminal -- bash -i my_script.sh

y el contenido de my_script.sh es sólo

python3

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: