Tengo una aplicación GTK basada en python que carga varios módulos. Se ejecuta desde el terminal (Linux) de esta manera:Reiniciar python-script desde su interior
./myscript.py --some-flag setting
Desde el programa el usuario puede descargar (usando Git) versiones más recientes. Si existe/se descarga, aparece un botón que me gustaría reiniciar el programa con contenido recién compilado (incluidas dependencias/importaciones). Preferiblemente también lo reiniciaría usando los contenidos de sys.argv
para mantener todas las banderas como estaban.
Así que lo que no encuentro/necesito es un buen procedimiento de reinicio que mata la instancia actual del programa y comienza una nueva usando los mismos argumentos.
Preferiblemente, la solución también debería funcionar para Windows y Mac, pero no es esencial.
lo que podría ser posible es tener el nuevo proceso que se ejecuta en paralelo a la antigua en un principio. Teóricamente, podría darle al nuevo proceso la identificación del proceso del anterior (a través de una opción de línea de comando adicional) y eliminar el anterior tan pronto como el nuevo esté en funcionamiento. –
posible duplicado de [Reiniciar una secuencia de comandos python autoactualizable] (http://stackoverflow.com/questions/1750757/restarting-a-self-updating-python-script) –