Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Suponed que tenéis un programa hecho en gambas, sin interface gráfico ni interacción con el usuario.

Lo que queremos es que al instalar el .deb:

A) Se ejecute cuando el usuario arranque el ordenador.

B) Se ejecute cuando cualquier otro usuario existente en la máquina se conecte.

C) Se ejecute cuando cualquier otro usuario futuro, creado por cualquier usuario administrador existente, se conecte.

Me ha costado un poco encontrar la solución pero al final la he encontrado

¿Cómo lo haríais vosotros?
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 06 Abril 2016, 09:51; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Shordi:

¿usando el archivo init.d?

http://rm-rf.es/script-arranque-automatico-sistema-linux-init-d/
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
En parte, pero los rc de init.d se ejecutan antes del login del usuario, por lo que no se pueden grabar sus configuraciones y demás.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Bueno dejate de misterio, ¿Como se hace?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
El caso real del que surge esto es:
Estamos desarrollando una aplicación que recoge información física de la máquina y de los accesos de los usuarios y la envía a una base de datos ubicada en nuestro servidor. Con ello controlamos cosas como qué máquinas necesitan ser actualizadas, quién se está quedando sin disco, qué máquinas no tienen suficientes recursos, cuando y desde dónde se conectan los usuarios, etc. etc.
Es necesario que el programa que colecciona los datos esté instalado en todas nuestras máquinas y en los perfiles de todos los usuarios existentes y futuros de la máquina.

Vale, he aquí la solución que he encontrado yo.
Nos valemos de la capacidad de gambas de incorporar cualquier fichero que queramos a nuestros paquetes .deb.
Así, incorporamos al paquete de instalación
    
    -una versión del fichero estándar /etc/skel/.profile que incluya una llamada a nuestro programa. (Este fichero es el que se copia al home de cada usuario cuando es creado)

    -un shell script, llamado addprofile.sh, por ejemplo, que añada dicha referencia a los .profiles de todos los usuarios ya existentes, si es que no la tienen ya, y que colocamos en /etc/init.d

    -un enlace a dicho shell script que colocamos en /etc/rc3.d (debe empezar por "S" seguido de un número con el orden de ejecución en el nivel de arranque. Mejor un número alto, para que se ejecute cuanto todo esté prácticamente montado y hecho S93addprofile o algo así)

Todo esto es posible porque la instalación del .deb se hace con permisos de root, y la copia de los ficheros también. En el siguiente arranque de la máquina, el .profile ya será grabado en todos los home de los usuarios y lanzará el programa cada vez que se inicie el sistema.

Sabiendo que la llamada al programa es "/usr/bin/colector", el shell script es este:
#!/bin/bash
for usuario in /home/*
do
    cat $usuario/.profile|grep colector >/tmp/tiene
    if [ -s /tmp/tiene ]; then
        rm /tmp/tiene
        #echo "$usuario SI tiene"
    else
        echo "/usr/bin/colector" >> $usuario/.profile
        #echo "$usuario NO tenía. Ahora Sí"
    fi
done
 


Aún no lo he implementado de verdad y tengo mis dudas de que funcione en todos los casos,  pero hasta donde lo he probado, funciona. Eso sí, en derivados de Debian, que ignoro si otros sistemas basan su configuración de usuaro en /etc/skel, etc. Aunque supongo que se podrá adaptar fácilmente.
 




===================
No podemos regresar
 
última edición por shordi el Viernes, 08 Abril 2016, 10:32; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Shordi:

Citar:
recoge información física de la máquina y de los accesos de los usuarios y la envía a una base de datos

Te va a contratar el CNI, la CIA, el FBI !!    
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Es utilísimo. Ayer mismo repasamos las pocas máquinas que ya están enviando datos y descubrimos dos o tres que no tenían instalados por completo los paquetes de idiomas, entras vía ssh, se los instalas, le actualizas el sistema, te sales y el usuario ni se entera, salvo que ahora todo le sale en español.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
shordi escribió: [Ver mensaje]
Es utilísimo...

Que bueno, eso que estas haciendo, me gustaría desarrollar algo parecido.
Yo ahora estoy en la etapa de administrar el sistema que le instale a una empresa.
, y una de las cosas que necesito hacer es sabes cuando se conectan/desconectan, quien y desde que ip, (trabajo con escritorios remotos x2go) y de momento estoy mirando (a manopla) el archivo /var/log/auth.log (ya que todo sucede en una sola pc, el "servidor") pero me gustaría desarrollar algún script que a las 12 de la noche por ejemplo, recoja las novedades de ese día y haga el resumen y lo mande a la base de datos.
Luego otra cosa que también seria interesante es hacer algo parecido pero con el uso de un programa que hice en gambas.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Haríais Esto? (Ejecución De Programas Al Iniciar El Sistema) 
 
Citar:
a las 12 de la noche por ejemplo, recoja las novedades de ese día y haga el resumen y lo mande a la base de datos.

Eso es la segunda parte del tema. El programa que recoge los datos se ejecuta en la parte cliente siempre que se conecta el usuario. La información que recoge se guarda en un fichero .csv que se envía vía ftp al servidor central de la empresa.
Este es el que genera el ordenador de mi casa:

Citar:
idmaquina;pater_192
so;Linux Mint 17.3 Rosa
aso;x86_64
aprocesador;x86_64
procesador;Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
ram;7926 MB
npc;pater
usuariopc;jorge
usuariospc;jorge|
eescritorio;cinnamon
ips;192.168.0.192|127.0.0.1|
ipprivada;192.168.0.192
ippublica;95.63.213.182
nserie;60054B774A04838C
sfraiz;/dev/sda1        101G    46G   50G  49% /
sfhome;/dev/sda1        101G    46G   50G  49% /
factualizacion;2016-04-08
software;accountsservice#0.6.35-0ubuntu7.2|acl#2.2.52-1|acpi-support#0.142|acpid#1:2.0.21-1ubuntu2|add-apt-key#1.0-0.5|adduser#3.113+nmu3ubuntu3|adobe-flashplugin#1:20160407.1-0ubuntu0.14.04.1|adobereader-enu#9.5.3|alsa-base#1.0.25+dfsg-0ubuntu4|alsa-utils#1.0.27.2-1ubuntu2|anacron#2.3-20ubuntu1|apache2#2.4.7-1ubuntu4.9|apache2-bin#2.4.7-1ubuntu4.9|apache2-data#2.4....

... hasta 84kb de la salida del comando dpkg -l


Posteriormente, (nunca a las 12 de la noche, que si no pueden surgir errores en las fechas que se almacenan), un proceso ejecutado con un cron en el servidor distribuye esos datos a una tabla y de ahí a las distintas tablas estructuradas de la aplicación. Este mismo proceso ejecuta consultas de prueba y levanta vía email las alertas que se configuren (por ejemplo, conexiones desde ips publicas extrañas, discos que tienen menos del 20% libre), etc. etc.
Finalmente una aplicación con interfaz gráfico permite consultar y controlar todos estos datos.

Esto se combina con el acceso vía ssh a todas las máquinas implicadas, para poder corregir los errores que surgan y ya tienes disponible un sistema de administración y control "completo" de la empresa. Desarrollado en gambas y portable a otras empresas.
Una maravilla. Como dato destacable decir que es el primer programa serio que hace mi padawan, lo cual dice mucho en su favor... claro que tiene un buen maestro   
 




===================
No podemos regresar
 
última edición por shordi el Viernes, 08 Abril 2016, 17:16; editado 3 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cómo Es Esto De Los Plugins En El Webbrow... h4k General 9 Lunes, 07 May 2012, 21:02 Ver último mensaje
jsbsan
No hay nuevos mensajes Controlando La Ejecución De Programas Ext... shordi Aplicaciones/Fragmentos de Código 14 Domingo, 26 Abril 2015, 20:01 Ver último mensaje
shordi
No hay nuevos mensajes Cloud9: Instalacion De Gambas3 Y Ejecució... jsbsan Videotutoriales 11 Lunes, 29 Agosto 2016, 14:00 Ver último mensaje
davidbueno
No hay nuevos mensajes Ejecutar Un Script Al Iniciar, Al Reinicia... Shell Mundo Linux 4 Viernes, 09 Junio 2017, 08:43 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron