2011-09-27 9 views
13

Estoy desarrollando un programa que tiene un botón. Cuando se pulsa, quiero abrir un terminal que funciona:abre una terminal de python

sudo apt-get update 

que estoy usando:

os.system("gnome-terminal -e 'sudo apt-get update'") 

Esto funciona bien. El único problema es que cuando la actualización finaliza, el terminal se cierra. ¿Qué puedo hacer para dejar la terminal abierta?

+0

Vea este post: http://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution – rodion

Respuesta

11

usted puede hacer esto:

os.system("gnome-terminal -e 'bash -c \"sudo apt-get update; exec bash\"'") 
+1

Y probablemente sea lo mismo con Konsole (si uso KDE)? – mika29

+0

os.system ("gnome-terminal -e 'sudo apt-get update'"). No estoy seguro de por qué necesita el extra 'bash' cuando esto funciona bien. – mastash3ff

+1

@ mastash3ff - lea la pregunta. "cuando la actualización finaliza, el terminal se cierra". La llamada extra bash lo mantiene abierto. – jterrace

4

Hay algunas opciones:

  • añadir ; read -p "Hit ENTER to exit" hasta el final de la línea de comandos.
  • agregue ; sleep 10 al final de la línea de comando para esperar un poco, luego salga.
  • Configurar terminal de GNOME:

    Ir al menú "Editar" y haga clic en "Perfil actual". Haga clic en la pestaña "Título y comando". Allí, hay una configuración llamada "Cuando el comando sale". Cámbielo para "mantener abierto el terminal". También puedes crear un nuevo perfil.

0

Se puede quitar el -e:

os.system("gnome-terminal 'sudo apt-get update'") 
+1

No se pudo hacer que esto funcione. Tuve que usar la opción -e como se sugirió anteriormente. – mastash3ff

Cuestiones relacionadas