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

From ArchWiki
Jump to: navigation, search
(Created page with "Category:Boot process (Español) {{i18n|Writing rc.d scripts}} {{Article summary start}} {{Article summary text|Escribiendo scripts de demonios para el rc.d.}} {{Article summ...")
 
(synchronized interlanguage links with the other wikis)
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Boot process (Español)]]
 
[[Category:Boot process (Español)]]
{{i18n|Writing rc.d scripts}}
+
[[en:Writing rc.d scripts]]
 +
[[zh-CN:Writing rc.d scripts]]
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|Escribiendo scripts de demonios para el rc.d.}}
 
{{Article summary text|Escribiendo scripts de demonios para el rc.d.}}
Line 12: Line 13:
  
 
==Lineas de guia==
 
==Lineas de guia==
*Source {{Filename|/etc/rc.conf}}, {{Filename|/etc/rc.d/functions}}, and optionally {{Filename|/etc/conf.d/DAEMON_NAME}}.
+
*Fuente {{ic|/etc/rc.conf}}, {{ic|/etc/rc.d/functions}}, y opcionalmente  {{ic|/etc/conf.d/DAEMON_NAME}}.
*Arguments and other daemon options should be placed in {{Filename|/etc/conf.d/DAEMON_NAME}}. This is done to separate configuration from logic and to keep a consistent style among daemon scripts.
+
*Los argumentos y opciones de los demenios deben ir en {{ic|/etc/conf.d/DAEMON_NAME}}. Esta hecho para separar las configuraciones y mantener la consistencia.
*Use functions in {{Filename|/etc/rc.d/functions}} instead of duplicating their functionality.
+
*Usar las funciones en {{ic|/etc/rc.d/functions}} en vez de duplicar las funcionalidades.
*Include at least start, stop and restart as arguments to the script.
+
*Inclir al menos "start", "stop" y "restart" como argumentos en es script.
*There are some functions provided by {{Filename|/etc/rc.d/functions}}:
+
*Hay algunas funcionalidades provistas por {{ic|/etc/rc.d/functions}}:
**stat_busy "<message>": set status ''busy'' for printed message (e.g. <nowiki>Starting daemon   [BUSY]</nowiki>)
+
**stat_busy "<message>": establece el estado  ''busy''(ocupado) como mensaje a mostrar (ej: <nowiki>Iniciando Demonio   [OCUPADO]</nowiki>)
**stat_done: set status ''done'' (e.g. <nowiki>Starting daemon  [DONE]</nowiki>)
+
**stat_done: establece el estado ''done'' (hecho) (ej: <nowiki>Iniciando Demonio  [HECHO]</nowiki>)
**stat_fail: set status ''failed'' (e.g. <nowiki>Starting daemon  [FAILED]</nowiki>)
+
**stat_fail: establece el estado ''failed'' (e.g. <nowiki>Iniciando Demonio  [FALLO]</nowiki>)
**get_pid <program>: get PID of the program
+
**get_pid <program>: obtiene el  PID del programa.
**ck_pidfile <PID-file> <program>: check whether PID-file is still valid for the program (e.g. <nowiki>ck_pidfile /var/run/daemon.pid daemon || rm -f /var/run/daemon.pid</nowiki>)
+
**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>: add/remove program to running daemons (stored in {{Filename|/run/daemons/}})
+
**[add|rm]_daemon <program>: Agrega/remueve programas a los demonios activos (almacenados en {{ic|/run/daemons/}})
  
==Example==
+
==Ejemplo==
The following is an example for ''crond''. Look in {{Filename|/etc/rc.d}} for greater variety.
+
Lo siguiente es un ejemplo para ''crond''. Revise en  {{ic|/etc/rc.d}}, encontrara variedad.
  
The configuration file:
+
El archivo de configuración:
{{File|name=/etc/conf.d/crond|content=<nowiki>ARGS="-S -l info"</nowiki>}}
+
{{hc|/etc/conf.d/crond|2=<nowiki>ARGS="-S -l info"</nowiki>}}
  
The actual script:
+
El script actual:
{{File|name=/etc/rc.d/crond|content=<nowiki>
+
{{hc|/etc/rc.d/crond|2=<nowiki>
 
#!/bin/bash
 
#!/bin/bash
  

Revision as of 15:21, 23 February 2014

Summary help replacing me
Escribiendo scripts de demonios para el rc.d.
Related
Arch Boot Process
Daemon
rc.conf

Como parte del inicio "estilo-BSD" de arch, los scripts del rc.d son usados para el inicio, detencion y reiniciacion de los demonios.

Lineas de guia

  • Fuente /etc/rc.conf, /etc/rc.d/functions, y opcionalmente /etc/conf.d/DAEMON_NAME.
  • Los argumentos y opciones de los demenios deben ir en /etc/conf.d/DAEMON_NAME. Esta hecho para separar las configuraciones y mantener la consistencia.
  • Usar las funciones en /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 /etc/rc.d/functions:
    • stat_busy "<message>": establece el estado busy(ocupado) como mensaje a mostrar (ej: Iniciando Demonio [OCUPADO])
    • stat_done: establece el estado done (hecho) (ej: Iniciando Demonio [HECHO])
    • stat_fail: establece el estado failed (e.g. Iniciando Demonio [FALLO])
    • 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. ck_pidfile /var/run/daemon.pid daemon || rm -f /var/run/daemon.pid)
    • [add|rm]_daemon <program>: Agrega/remueve programas a los demonios activos (almacenados en /run/daemons/)

Ejemplo

Lo siguiente es un ejemplo para crond. Revise en /etc/rc.d, encontrara variedad.

El archivo de configuración:

/etc/conf.d/crond
ARGS="-S -l info"

El script actual:

/etc/rc.d/crond
#!/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