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.
|