[Kde-devel-es] saber nombre de proceso (sabiendo PID)

Mario Teijeiro Otero emeteo at escomposlinux.org
Sun May 18 23:17:22 CEST 2008


Buenas
	en /proc/$PID/cmdline tienes la línea de comandos con qué se lanzó
el proceso corresponiente al número de PID. Si lees la primera cadena de 
textos te daría el argv[0], o sea, el nombre del programa.

	Lo malo es que, HDYS, como tú cies, no es portable ya que es algo específico 
a linux.

Sobre el manejo de una KUniqueApplication, lo hacen a través de DCOP. De todas 
maneras, quizás se podría hacer utilizando la librería SM de las X, que es la 
encargada de manejar las sesiones. 

	Echa un vistazo en freedesktop para realizarlo de manera estandar.


Un saludo


On Friday 16 May 2008 16:09:27 Carles Pina i Estany wrote:
> Hola,
>
> Tengo una aplicación hecha en Qt (NO en KDE Libs :-|) y me gustaría que
> sólo hubier una instancia.
>
> Lo que tengo hecho ahora es escribir un fichero con su PID cuando
> funciona. Si el usuario vuelve a arrancar y encuentra el PID, manda una
> señal SIGUSR1 al PID y la aplicación se restaura.
>
> Me gustaría asegurar que el PID es de mi aplicación y no de otras
> aplicaciones para:
> a) estar seguro que mi aplicación se restaura
> b) si no es mi aplicaicón podría matar una aplicación
>
> Tengo dos ideas:
> a) ps auxw, parsear desde C++, etc. (no me gusta y poco portable)
> b) mirar en /proc/PID/status, la línea "Name" y tener el nombre. No es
> muy portable, sólo Linux.
>
> Hasta donde he visto Qt no tiene un get_name_from_pid :-), como lo
> haríais? Sé que las KDE libs saben hacer lo de una aplicación a la vez
> pero creo que tienen hecho un método más complejo que lo que necesito
> (pero no he mirado el código, aún!) (me gustaría no tener que usar
> memoria compartida, sockets unix, etc. si lo puedo hacer con sólo
> señales y ficheros)
>
> Gracias,




More information about the Kde-devel-es mailing list