Defcon-1-Logo

           [Home]    [FBSD Articles]    [Scripts Corner]    [Contribute]    [Search]    [FBSD Links]    [Files]

About Us

FreeBSD Articles
  *Hardware
  *Networking
  *Security
  *Software
  *X Windows


Files / Scripts
Newbies Corner
Tech. Talk
Tips and Tricks


FreeBSD Links

Articles in other
Languages :
  *French Articles
  *Spanish Articles

Want to Help ?
 
   Click Here

Email Users5

Search:
 

 


FreeBSD Search:


 

 

Powered-By-Apache-Logo

                Que paso con rc.local?

* Estas preguntandote desde donde apache y otros puertos inician?
* Estas preguntandote donde pones los archivos y comandos de inicio?
* Estas preguntandote la forma mas rapida para configurar algunas de las
 opciones de FreeBSD?

No vallas mas lejos que /etc/rc.conf o /usr/local/etc/rc.d

/usr/local/etc/rc.d

Si estas acostumbrado a agregar lineas al archivo /etc/rc.local y ejecutar comandos al inicio del sistema, seguramente te estes preguntando que paso con el archivo en FreeBSD.
Bueno, fue reemplazado por un directorio llamado /usr/local/etc.rc.d - El script de inicio /etc/rc busca archivos con la extension .sh (shell scripts) en ese directorio y los ejectuta.

Si estas corriendo cualquier puerto como apache, mysql o OpenSSH, vas a ver sus archivos .sh en este directorio. Este es tambien el directorio donde vos podrias poner cualquier tipo de script que quieras correr cuando la maquina inicie. Simplemente crea un shell script con extension .sh y guarda el archivo en /usr/local/etc/rc.d/

Esto es lo que /etc/rc hace

echo -n 'Local package initialization:'
    for dir in ${local_startup}; do 
        if [ -d "${dir}" ]; then
            for script in ${dir}/*.sh; do
                if [ -x "${script}" ]; then
                    (set -T
                     trap 'exit 1' 2
                     ${script} start)
                fi
            done
        fi

De donde obtiene el $(local_startup)? Bueno, lo obtiene desde rc.conf, mira mas abajo..

rc.conf

Hay muchas caracteristicas que FreeBSD include que pueden ser usadas simplemente agregando una linea a un solo archivo.
El archivo /etc/defaults/rc.conf contiene una lista de las variables y sus opciones.
Algunas de esas variables incluyen.

* hostname - para poder configurar el host de tu box.
* natd_enable - para usar natd.
* ifconfig_interface - para configurar TCP/IP en las interfaces de red.
* named_enable - para usar DNS.
* sshd_enable - para usar el server ssh
* static_routes - para ingresar rutas estaticas
* ppp_enable - para usar PPP
* local_startup - para definir el directorio de los archivos de inicio
* Lee el archivo man del rc.conf con man rc.conf para ver mas opciones o verifica  /etc/defaults.rc.conf

Si deseas cambiar cualquiera de los valores en este archivo, tienes que crear un archivo llamado /etc/rc.conf con los valores que desees. Este archivo *usualmente* es creado durante la instalacion de FreeBSD y contiene los valores de ifconfig, hostname y otros que especificas durante la instalacion. Cualquier cambio que le hagas al archivo, va a tomar efecto la proxima vez que inicies el sistema.

Actualmente, el archivo que hace todo es /etc.rc. En el caso de /usr/local/etc/rc.d, solo mira el directorio de inicio "local_startup" en rc.conf y corre cualquier archivo con extension .sh que este en el directorio. Para todas las variables de abajo (y aun mas), rc busca busca los archivos de rc.conf para dar valores apropiados, ejemplo, llama a rc.network, rc.firewall, rc.i386, y un par mas para podes realizar todo esto.
Aqui hay un ejemplo con named (DNS). en tu archivo rc.conf, deberias tener los siguientes valores:
named_enable="YES"# Corre named, el server de DNS (o no lo corre).
named_program="named"# directorio del named, si queres podes especificar otro.
named_flags="-q"# Flags/opciones para named.

En el inicio, el /etc/rc llama a /etc/rc.network, el cual corre lo siguiente:

case $(named_enable) in
[Yy] [Ee] [Ss])
  ecbo -n ' named';${named_program:-named} ${named_flags}
esac

Como podes ver, el script rc.network determina si queres correr named. Luego ejectuta lo que sea que halla en named_program (named por defecto) con named_flags como sus opciones. Entonces, usando nuestras variables, ejecutaria:
named -q

Se ve un poco dificultoso solo ejecutar un comando, eh? Bueno si pensas acerca de
cuan configurable estas opciones son, vas a darte cuenta cuan simple hace las cosas.

Mas informacion de estos archivos puede ser encontrada en las paginas man apropiadas.
 

Email Us

ghostrdr@defcon1.org

This site cannot be duplicated without permission

© 1998 - 2010 Defcon1, www.defcon1.org. Copyrights for all materials on this web site are held by the individual authors, artists, photographers or creators. Materials may not be reproduced or otherwise distributed without permission of www.defcon1.org and the content's original author.