[pyar] Reiniciar aplicacion

Sergio Vernis svernis en gmail.com
Mie Jul 21 10:46:37 ART 2010


El día 21 de julio de 2010 10:11, Gonzalo <gonchi.sanchez en gmail.com> escribió:
> Hola! Hace tiempo que no escribo, tengo una pequnia consulta:
> Estoy haciendo una aplicación en python y necesito que en cierto
> momento (mediante un evento o algo que yo controlo) la aplicacion se
> reinicie. Buscando encontré la función reload() pero según la doc:
> "Reload a previously imported module. The argument must be a module
> object, so it must have been successfully imported before. "
> Entonces creo que no me sirve...
> Alguna sugerencia?

Gonzalo:

Lo que necesitas es un lanzador que lance tu aplicación y que la
detenga y reinicie cada un cierto tiempo.

Podes hacer que la aplicación lanzada le avise a la aplicación
lanzadora cuando es posible reiniciarla.

Yo he lanzado una aplicación, pero una vez que termina su tiempo de
ejecución la mato sin contemplaciones, y la vuelvo a reiniciar.  A mi
me sirvió, para lo que necesitaba [1].

Saludos.

Sergio.

[1]
def startsoundrecorder():
	"""Start Recording"""
	global soundrecorderpid, soundrecordernumberfile, SoundFileName
	debug('Start Recording:
'+NombreArchivoSonido+'_'+str(soundrecordernumberfile).zfill(2)+TipoDeArchivoSonido)
	if (not soundrecorderpid) and SoundRecorder:
		if (soundrecordernumberfile==1) and (not os.path.exists(SoundRecordFolder)):
			os.mkdir(SoundRecordFolder)
		SoundFileName=NombreArchivoSonido+'_'+str(soundrecordernumberfile).zfill(5)
		FullSoundFileName = SoundRecordFolder+os.sep+SoundFileName+TipoDeArchivoSonido
		if sys.platform[0:3]=="win":
			if win32TerminateProcessLoaded:
				soundrecorderpid =
subprocess.Popen(['SoundCapture\SoundCapture.exe','/wav','/mono','/m','240',FullSoundFileName],creationflags=CREATE_NEW_PROCESS_GROUP)
		else:
			soundrecorderpid =
subprocess.Popen(['arecord','-f','S16_LE','-c1','-r44100',
FullSoundFileName])
		soundrecordernumberfile += 1
	else:
		debug('Start Recording: Ya se esta grabando un archivo de sonido')

def stopsoundrecorder():
	"""Stop Recording"""
	debug('Stop Recording: '+NombreArchivoSonido)
	global soundrecorderpid
	if soundrecorderpid and SoundRecorder:
		if sys.platform[0:3]=="win":
			if win32TerminateProcessLoaded:
				# Terminate the process using pywin32
				GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,soundrecorderpid.pid)
		else:
			os.kill(soundrecorderpid.pid,15)
		soundrecorderpid = 0
	else:
		debug('Stop Recording: No se esta grabando un archivo de sonido')
	
def restartsoundrecorder():
	debug('Restart Recording')
	if SoundRecorder:
		stopsoundrecorder()
		startsoundrecorder()
-- 
   Yo uso software libre - I use freedom-based software



More information about the pyar mailing list