viernes, 25 de noviembre de 2016

Solución procesos fork() I

Solución del ejercicio propuesto en la entrada procesos fork() I del 6 de octubre de 2015. Esta solución se obtiene sobre linux Ubuntu 10.04 en una máquina virtual de VirtualBox, sobre ordenadores con procesadores intel core i5 con windows 8.1 pro.

Atención este ejercicio tiene el mismo árbol de procesos que el fork() II, pero en la ejecución en este caso los nietos se quedan huérfanos porque en el código no hay un segundo wait(). Como se ha ejecutado sobre Ubuntu 10.04 los proceso huérfanos pasan a ser hijos del proceso 1, en las versiones siguientes, no pasan a ser hijos del proceso 1.

viernes, 4 de noviembre de 2016

Solución Runlevel I. Linux.

Solución al ejercicio planteado de Runlevel Linux el 20 del 10 de 2016. Realizado en Ubunutu.

  1. En etc/init.d/ creamos inicios.sh
    • date>>/home/alumno/historia.txt
    • cat /dev/null>/home/alumno/.bash_history # eliminamos el historial de comandos del usuario
  2. A continuación creamos el enlace simbólico:
    • ln -s /etc/init.d/inicios.sh /etc/rc2.d/S99inicios.sh
    • # Observar que hemos puesto la ruta absoluta, que lo incluimos en el nivel 2 (de arranque)
    • # La S de start y el 99 del orden de orden o prioridad de ejecución
  3. Hacemos el segundo script historial.sh en /etc/init.d
    • cat /home/alumno/.bash_history>>/home/alumno/historial.txt
    • # Añadimos al fichero creado anteriormente "historial.txt" el historial de comandos del usuario en esa sesión
  4. Creamos los enlaces simbólicos del script historial.sh, en los niveles de apagado 0 y de reinicio 6.
    • ln -s /etc/init.d/historial.sh /etc/rc0.d/S99historial.sh
    • ln -s /etc/init.d/historial.sh /etc/rc6.d/S99historial.sh

También se podría utilizar el fichero /etc/rc.local en Ubuntu o el fichero /etc/rc.d/boot.local en Suse.