Iniciar una aplicacion con linux.

Iniciado por 0xDani, 11 Agosto 2012, 14:59 PM

0 Miembros y 1 Visitante están viendo este tema.

0xDani

Bueno pues me pregunto si existe algo parecido al registro de windows en linux, y como se registrarian aplicaciones en el, para que se inicien al iniciar el ordenador. En mi ubuntu hay una opcion para configurar las aplicaciones que se van a iniciar cuando se inicie el SO, de lo que deduzco que debe haber alguna forma de hacerlo en C/C++, pero no he encontrado nada googleando.

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Risketo

Lo que se me ocurre es que hagas un bash con permisos de ejecucion que llame a tu programa en c y pongas ese bash en la opcion de aplicaciones al inicio.

0xDani

Ya, claro, pero para eso pongo mi programa en aplicaciones al inicio directamente. El problema es que yo quiero hacerlo con codigo, no desde la interfaz. Gracias de todas formas.

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

xiruko

para hacerlo desde codigo podrias mirar estas funciones:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf1/exec.htm

aunque extrayendo el siguiente parrafo de aqui:
"Running a shell command in a child process is generally more useful than simply using the exec subroutine, as shown in this example. The simplest way to do this is to use the system subroutine."

yo entiendo que para solo correr un comando de terminal en el programa, lo mejor es usar system().

y para que arranque, pues no uso linux asi que no puedo probarlo, pero podrias probar lo que se dice aqui:
http://stackoverflow.com/questions/7221757/run-automatically-program-on-startup-under-linux-ubuntu

un saludo!

yoxter

déjame entender lo que quieres, desde c++ hacer una configurarcion que te inicia una app en linux ?

eso depende del entorno gráfico en el que usuario este y todos los que conozco tienen un archivo de configuración para aplicaciones de inicio, algunos requieren permiso de usperuser para editarse y lo otro que funciona en cualquier linux seria editar los init levels. o si lo que quieres es crear algo como un modulo de kernel recurre a modprobe y insmod.



Posiblemente soy el intento de programador mas fracaso de la historia !!

Foxy Rider

CitarBueno pues me pregunto si existe algo parecido al registro de windows en linux

No, por dior, no !!! x'D
(ok, si mal no recuerdo la gente de GNOME tiene algo parecido, lol ... con "limpiador de registro"  y todo, eww )

Citary como se registrarian aplicaciones en el, para que se inicien al iniciar el ordenador.

Podés armar un init script, usar /etc/profile (esto es medio puerco) ... o los archivos en el home del usuario, como .profile, .login y los rc (como .bashrc, .xinitrc, etc ..)

Saludos.

The Swash

Hola,

Copias tu archivo en "/etc/init.d", no olvides darle permisos de ejecución. Luego editas el archivo "/etc/rc.local" y añades la línea que ejecute tu archivo en "/etc/init.d" (/etc/init.d/archivo).

Un saludo,
Iván Portilla.

Foxy Rider

Cita de: The Swash en 12 Agosto 2012, 22:31 PM
Hola,

Copias tu archivo en "/etc/init.d", no olvides darle permisos de ejecución. Luego editas el archivo "/etc/rc.local" y añades la línea que ejecute tu archivo en "/etc/init.d" (/etc/init.d/archivo).

Un saludo,
Iván Portilla.

Si, en los sistemas que tengan ESE sistema de inicio. como sabrás, hay BSD init y System V, sumado a upstart, systemd, etc ...
Lo óptimo es tocar los rc del usuario y usar locking, salvo que quieras lidiar con todos los sistemas de inicio que hay en linux.

Saludos.

P.S → Si lo hicieses así, en esta computadora no correría tu soft :B

0xDani

Vale, entonces voy a seguir investigando un poco, por que por lo que veo en cada sistema se inicia de una forma distinta, asi que a ver si lo puedo hacer portable para todos. Voy a investigar que sistema de inicio tiene Ubuntu, y despues lo ire adaptando.

Saludos.

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Foxy Rider

#9
Cita de: daniyo en 13 Agosto 2012, 14:15 PM
Vale, entonces voy a seguir investigando un poco, por que por lo que veo en cada sistema se inicia de una forma distinta, asi que a ver si lo puedo hacer portable para todos. Voy a investigar que sistema de inicio tiene Ubuntu, y despues lo ire adaptando.

Saludos.



Es un lindo aprendizaje ese (es la manera "elegante" de integrarse al sistema), pero si tenés ganas de tener funcionando algo YA (inelegante, pero aún así, está bastante bien) ... podés tomar el atajo que te mencioné : "Lo óptimo es tocar los rc del usuario y usar locking

Saludos.

P.S → Lo de la respuesta de init fue para swash ... como una forma de decir que no es lo óptimo, salvo que quieras hacer un soft BIEN armado, y a costa de eso quieras lidiar con todas las diferentes implementaciones de inits (por que para soportar uno solo, mejor ni dar soporte a init, y hacerlo con lockfiles y no dejar a nadie a fuera, por inelegante que sea)