|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
saber nombre de proceso (sabiendo PID)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, -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: saber nombre de proceso (sabiendo PID)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, _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: saber nombre de proceso (sabiendo PID)Hola, On May/18/2008, Mario Teijeiro Otero wrote: > 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. interesante hacerlo mediante las X. Imagino que es la libreria libsm-dev. > Echa un vistazo en freedesktop para realizarlo de manera estandar. Si tienes alguna referencia en concreto de freedesktop mandamela por favor, sinó buscaré más. He dado una mini-vuelta en la web de freedesktop sin éxito :-) Muchas gracias, -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: saber nombre de proceso (sabiendo PID)Hola, On May/18/2008, Mario Teijeiro Otero wrote: > Echa un vistazo en freedesktop para realizarlo de manera estandar. finalmente hoy he hecho esto. Lo he hecho usando dbus (la implementación de Qt). Genial! muy fácil, sencillo, me ha resuelto muy bien el problema. Mucho mejor que cosas a más bajo nivel que pensé (señales, sockets Unix; o boost, etc.) Gracias por las recomendaciones, -- Carles Pina i Estany GPG id: 0x8CBDAE64 http://pinux.info Manresa - Barcelona _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
| Free embeddable forum powered by Nabble | Forum Help |