Difference between revisions of "Writing rc.d scripts (Español)"

From ArchWiki
Jump to navigation Jump to search
(es una redirección)
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Boot process (Español)]]
+
#REDIRECT [[SysVinit (Español)]]
{{i18n|Writing rc.d scripts}}
 
{{Article summary start}}
 
{{Article summary text|Escribiendo scripts de demonios para el rc.d.}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|Arch Boot Process}}
 
{{Article summary wiki|Daemon}}
 
{{Article summary wiki|rc.conf}}
 
{{Article summary end}}
 
 
 
Como parte del inicio "estilo-BSD" de arch, los scripts del rc.d son usados para  el inicio, detencion y reiniciacion de los [[Daemon|demonios]].
 
 
 
==Lineas de guia==
 
*Fuente {{Filename|/etc/rc.conf}}, {{Filename|/etc/rc.d/functions}}, y opcionalmente  {{Filename|/etc/conf.d/DAEMON_NAME}}.
 
*Los argumentos y opciones de los demenios deben ir en {{Filename|/etc/conf.d/DAEMON_NAME}}. Esta hecho para separar las configuraciones y mantener la consistencia.
 
*Usar las funciones en {{Filename|/etc/rc.d/functions}} en vez de duplicar las funcionalidades.
 
*Inclir al menos "start", "stop" y "restart" como argumentos en es script.
 
*Hay algunas funcionalidades provistas por {{Filename|/etc/rc.d/functions}}:
 
**stat_busy "<message>": establece el estado  ''busy''(ocupado) como mensaje a mostrar (ej: <nowiki>Iniciando Demonio  [OCUPADO]</nowiki>)
 
**stat_done: establece el estado ''done'' (hecho) (ej: <nowiki>Iniciando Demonio  [HECHO]</nowiki>)
 
**stat_fail: establece el estado ''failed'' (e.g. <nowiki>Iniciando Demonio  [FALLO]</nowiki>)
 
**get_pid <program>: obtiene el  PID del programa.
 
**ck_pidfile <PID-file> <program>: Chekea si el  PID-file es aun valido para el programa (e.g. <nowiki>ck_pidfile /var/run/daemon.pid daemon || rm -f /var/run/daemon.pid</nowiki>)
 
**[add|rm]_daemon <program>: Agrega/remueve programas a los demonios activos (almacenados en {{Filename|/run/daemons/}})
 
 
 
==Ejemplo==
 
Lo siguiente es un ejemplo para ''crond''. Revise en  {{Filename|/etc/rc.d}}, encontrara variedad.
 
 
 
El archivo de configuración:
 
{{File|name=/etc/conf.d/crond|content=<nowiki>ARGS="-S -l info"</nowiki>}}
 
 
 
El script actual:
 
{{File|name=/etc/rc.d/crond|content=<nowiki>
 
#!/bin/bash
 
 
 
. /etc/rc.conf
 
. /etc/rc.d/functions
 
 
 
DAEMON=crond
 
ARGS=
 
 
 
[ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON
 
 
 
PID=$(get_pid $DAEMON)
 
 
 
case "$1" in
 
start)
 
  stat_busy "Starting $DAEMON"
 
  [ -z "$PID" ] && $DAEMON $ARGS &>/dev/null
 
  if [ $? = 0 ]; then
 
    add_daemon $DAEMON
 
    stat_done
 
  else
 
    stat_fail
 
    exit 1
 
  fi
 
  ;;
 
stop)
 
  stat_busy "Stopping $DAEMON"
 
  [ -n "$PID" ] && kill $PID &>/dev/null
 
  if [ $? = 0 ]; then
 
    rm_daemon $DAEMON
 
    stat_done
 
  else
 
    stat_fail
 
    exit 1
 
  fi
 
  ;;
 
restart)
 
  $0 stop
 
  sleep 1
 
  $0 start
 
  ;;
 
*)
 
  echo "usage: $0 {start|stop|restart}" 
 
esac
 
</nowiki>}}
 

Latest revision as of 19:33, 28 August 2018