home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277743_stopping.xml.es < prev    next >
Extensible Markup Language  |  2004-04-25  |  13KB  |  264 lines

  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
  3. <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
  4. <!-- English Revision: 1.2.2.9  -->
  5.  
  6. <!--
  7.  Copyright 2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <manualpage metafile="stopping.xml.meta">
  23.  
  24.   <title>Iniciar y Parar el servidor Apache</title>
  25.  
  26. <summary>
  27.     <p>Este documento explica como iniciar y parar el servidor Apache
  28.      en sistemas tipo Unix. Los usuarios de Windows NT, 2000 y XP
  29.      deben consultar la sección <a
  30.      href="platform/windows.html#winsvc">Ejecutar Apache como un
  31.      servicio</a> y los usuario de Windows 9x y ME deben consultar <a
  32.      href="platform/windows.html#wincons">Ejecutar Apache como una
  33.      Aplicación de Consola</a> para obtener información
  34.      sobre como controlar Apache en esas plataformas.</p>
  35. </summary>
  36.  
  37. <seealso><a href="programs/httpd.html">httpd</a></seealso>
  38. <seealso><a href="programs/apachectl.html">apachectl</a></seealso>
  39.  
  40. <section id="introduction"><title>Introducción</title>
  41.  
  42.     <p>Para parar y reiniciar Apache, hay que enviar la señal
  43.     apropiada al proceso padre <code>httpd</code> que se esté
  44.     ejecutando.  Hay dos maneras de enviar estas señales.  En
  45.     primer lugar, puede usar el comando de Unix <code>kill</code> que
  46.     envía señales directamente a los procesos. Puede que
  47.     tenga varios procesos <code>httpd</code> ejecutandose en su
  48.     sistema, pero las señales deben enviarse solamente al proceso
  49.     padre, cuyo pid está especificado en la directiva <directive
  50.     module="mpm_common">PidFile</directive>. Esto quiere decir que no
  51.     debe necesitar enviar señales a ningún proceso excepto
  52.     al proceso padre. Hay tres señales que puede enviar al
  53.     proceso padre: <code><a href="#term">TERM</a></code>, <code><a
  54.     href="#hup">HUP</a></code>, y <code><a
  55.     href="#graceful">USR1</a></code>, que van a ser descritas a
  56.     continuación.</p>
  57.  
  58.     <p>Para enviar una señal al proceso padre debe escribir un
  59.     comando como el que se muestra en el ejemplo:</p>
  60.  
  61. <example>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</example>
  62.  
  63.     <p>La segunda manera de enviar señales a los procesos
  64.     <code>httpd</code> es usando las opciones de línea de
  65.     comandos <code>-k</code>: <code>stop</code>, <code>restart</code>,
  66.     y <code>graceful</code>, como se muestra más abajo.  Estas
  67.     opciones se le pueden pasar al binario <a
  68.     href="programs/httpd.html">httpd</a>, pero se recomienda que se
  69.     pasen al script de control <a
  70.     href="programs/apachectl.html">apachectl</a>, que a su vez los
  71.     pasará a <code>httpd</code>.</p>
  72.  
  73.     <p>Después de haber enviado las señales que desee a
  74.     <code>httpd</code>, puede ver como progresa el proceso
  75.     escribiendo:</p>
  76.  
  77. <example>tail -f /usr/local/apache2/logs/error_log</example>
  78.  
  79.     <p>Modifique estos ejemplos para que coincidan con la
  80.     configuración que tenga especificada en las directivas
  81.     <directive module="core">ServerRoot</directive> y <directive
  82.     module="mpm_common">PidFile</directive> en su fichero principal de
  83.     configuración.</p>
  84. </section>
  85.  
  86. <section id="term"><title>Parar Apache</title>
  87.  
  88. <dl><dt>Señal: TERM</dt>
  89. <dd><code>apachectl -k stop</code></dd>
  90. </dl>
  91.  
  92.     <p>Enviar las señales <code>TERM</code> o <code>stop</code>
  93.     al proceso padre hace que se intenten eliminar todos los procesos
  94.     hijo inmediatamente. Esto puede tardar algunos minutos. Una vez
  95.     que hayan terminado todos los procesos hijo, terminará el
  96.     proceso padre. Cualquier petición en proceso terminará
  97.     inmediatanmente, y ninguna petición posterior será
  98.     atendida.</p>
  99. </section>
  100.  
  101. <section id="graceful"><title>Reinicio Graceful</title>
  102.  
  103. <dl><dt>Señal: USR1</dt>
  104. <dd><code>apachectl -k graceful</code></dd>
  105. </dl>
  106.  
  107.     <p>Las señales <code>USR1</code> o <code>graceful</code>
  108.     hacen que el proceso padre <em>indique</em> a sus hijos que
  109.     terminen después de servir la petición que estén
  110.     atendiendo en ese momento (o de inmediato si no están
  111.     sirviendo ninguna petición). El proceso padre lee de nuevo
  112.     sus ficheros de configuración y vuelve a abrir sus ficheros
  113.     log. Conforme cada hijo va terminando, el proceso padre lo va
  114.     sustituyendo con un hijo de una nueva <em>generación</em> con
  115.     la nueva configuración, que empeciezan a servir peticiones
  116.     inmediatamente.</p>
  117.  
  118.     <note>En algunas plataformas que no permiten usar
  119.     <code>USR1</code> para reinicios graceful, puede usarse una
  120.     señal alternativa (como <code>WINCH</code>). Tambien puede
  121.     usar <code>apachectl graceful</code> y el script de control
  122.     enviará la señal adecuada para su plataforma.</note>
  123.  
  124.     <p>Apache está diseñado para respetar en todo momento la
  125.     directiva de control de procesos de los MPM, así como para
  126.     que el número de procesos y hebras disponibles para servir a
  127.     los clientes se mantenga en los valores adecuados durante el
  128.     proceso de reinicio.  Aún más, está diseñado
  129.     para respetar la directiva <directive
  130.     module="mpm_common">StartServers</directive> de la siguiente
  131.     manera: si después de al menos un segundo el nuevo hijo de la
  132.     directiva <directive module="mpm_common">StartServers</directive>
  133.     no ha sido creado, entonces crea los suficientes para se atienda
  134.     el trabajo que queda por hacer. Así, se intenta mantener
  135.     tanto el número de hijos adecuado para el trabajo que el
  136.     servidor tenga en ese momento, como respetar la configuración
  137.     determinada por los parámetros de la directiva
  138.     <directive>StartServers</directive>.</p>
  139.  
  140.     <p>Los usuarios del módulo <module>mod_status</module>
  141.     notarán que las estadísticas del servidor
  142.     <strong>no</strong> se ponen a cero cuando se usa la señal
  143.     <code>USR1</code>. Apache fue escrito tanto para minimizar el
  144.     tiempo en el que el servidor no puede servir nuevas peticiones
  145.     (que se pondrán en cola por el sistema operativo, de modo que
  146.     se no se pierda ningún evento), como para respetar sus
  147.     parámetros de ajuste. Para hacer esto, tiene que guardar el
  148.     <em>scoreboard</em> usado para llevar el registro de los procesos
  149.     hijo a través de las distintas generaciones.</p>
  150.  
  151.     <p>El mod_status también usa una <code>G</code> para indicar
  152.     que esos hijos están todavía sirviendo peticiones
  153.     previas al reinicio graceful.</p>
  154.  
  155.     <p>Actualmente no existe ninguna manera de que un script con un
  156.     log de rotación usando <code>USR1</code> sepa con seguridad
  157.     que todos los hijos que se registraron en el log con anterioridad
  158.     al reinicio han terminado. Se aconseja que se use un retardo
  159.     adecuado después de enviar la señal <code>USR1</code>
  160.     antes de hacer nada con el log antiguo. Por ejemplo, si la mayor
  161.     parte las visitas que recibe de usuarios que tienen conexiones de
  162.     baja velocidad tardan menos de 10 minutos en completarse, entoces
  163.     espere 15 minutos antes de hacer nada con el log antiguo.</p>
  164.  
  165.     <note>Si su fichero de configuración tiene errores cuando
  166.     haga el reinicio, entonces el proceso padre no se reinciciará
  167.     y terminará con un error. En caso de un reinicio graceful,
  168.     también dejará a los procesos hijo ejecutandose mientras
  169.     existan.  (Estos son los hijos de los que se está saliendo de
  170.     forma graceful y que están sirviendo sus últimas
  171.     peticiones.) Esto provocará problemas si intenta reiniciar el
  172.     servidor -- no será posible conectarse a la lista de puertos
  173.     de escucha. Antes de reiniciar, puede comprobar que la sintaxis de
  174.     sus ficheros de configuracion es correcta con la opción de
  175.     línea de comandos <code>-t</code> (consulte <a
  176.     href="programs/httpd.html">httpd</a>). No obstante, esto no
  177.     garantiza que el servidor se reinicie correctamente. Para
  178.     comprobar que no hay errores en los ficheros de
  179.     configuración, puede intentar iniciar <code>httpd</code> con
  180.     un usuario diferente a root. Si no hay errores, intentará
  181.     abrir sus sockets y logs y fallará porque el usuario no es
  182.     root (o porque el <code>httpd</code> que se está ejecutando
  183.     en ese momento ya está conectado a esos puertos). Si falla
  184.     por cualquier otra razón, entonces casi seguro que hay
  185.     algún error en alguno de los ficheros de configuración y
  186.     debe corregir ese o esos errores antes de hacer un reinicio
  187.     graceful.</note>
  188. </section>
  189.  
  190. <section id="hup"><title>Reiniciar Apache</title>
  191.  
  192. <dl><dt>Señal: HUP</dt>
  193. <dd><code>apachectl -k restart</code></dd>
  194. </dl>
  195.  
  196.     <p>El envío de las señales <code>HUP</code> o
  197.     <code>restart</code> al proceso padre hace que los procesos hijo
  198.     terminen como si le enviá ramos la señal
  199.     <code>TERM</code>, para eliminar el proceso padre. La diferencia
  200.     está en que estas señales vuelven a leer los archivos de
  201.     configuración y vuelven a abrir los ficheros log. Se genera
  202.     un nuevo conjunto de hijos y se continúa sirviendo
  203.     peticiones.</p>
  204.  
  205.     <p>Los usuarios del módulo <module>mod_status</module>
  206.     notarán que las estadísticas del servidor se ponen a
  207.     cero cuando se envía la señal <code>HUP</code>.</p>
  208.  
  209. <note>Si su fichero de configuración contiene errores, cuando
  210. intente reiniciar, el proceso padre del servidor no se
  211. reiniciará, sino que terminará con un error. Consulte
  212. más arriba cómo puede solucionar este problema.</note>
  213. </section>
  214.  
  215. <section id="race"><title>Apéndice: señales y race conditions</title>
  216.  
  217.     <p>Con anterioridad a la versión de Apache 1.2b9 había
  218.     varias <em>race conditions</em> implicadas en las señales
  219.     para parar y reiniciar procesos (una descripción sencilla de
  220.     una race condition es: un problema relacionado con el momento en
  221.     que suceden las cosas, como si algo sucediera en momento en que no
  222.     debe, y entonces el resultado esperado no se corresponde con el
  223.     obtenido). Para aquellas arquitecturas que tienen el conjunto de
  224.     características "adecuadas", se han eliminado tantas race
  225.     conditions como ha sido posible. Pero hay que tener en cuenta que
  226.     todavía existen race conditions en algunas arquitecturas.</p>
  227.  
  228.     <p>En las arquitecturas que usan un <directive
  229.     module="mpm_common">ScoreBoardFile</directive> en disco, existe la
  230.     posibilidad de que se corrompan los scoreboards. Esto puede hacer
  231.     que se produzca el error "bind: Address already in use"
  232.     (después de usar<code>HUP</code>) o el error "long lost child
  233.     came home!"  (después de usar <code>USR1</code>). En el
  234.     primer caso se trata de un error irrecuperable, mientras que en el
  235.     segundo, solo ocurre que el servidor pierde un slot del
  236.     scoreboard. Por lo tanto, sería aconsejable usar reinicios
  237.     graceful, y solo hacer reinicios normales de forma
  238.     ocasional. Estos problemas son bastante complicados de solucionar,
  239.     pero afortunadamente casi ninguna arquitectura necesita un fichero
  240.     scoreboard. Consulte la documentación de la directiva
  241.     <directive module="mpm_common">ScoreBoardFile</directive> para ver
  242.     las arquitecturas que la usan.</p>
  243.  
  244.     <p>Todas las arquitecturas tienen una pequeña race condition
  245.     en cada proceso hijo implicada en la segunda y subsiguientes
  246.     peticiones en una conexión HTTP persistente
  247.     (KeepAlive). Puede ser que el servidor termine después de
  248.     leer la línea de petición pero antes de leer cualquiera
  249.     de las cebeceras de petición. Hay una solución que fue
  250.     descubierta demasiado tarde para la incluirla en versión
  251.     1.2. En teoria esto no debe suponer ningún problema porque el
  252.     cliente KeepAlive ha de esperar que estas cosas pasen debido a los
  253.     retardos de red y a los timeouts que a veces dan los
  254.     servidores. En la practica, parece que no afecta a nada más
  255.     -- en una sesión de pruebas, un servidor se reinició
  256.     veinte veces por segundo y los clientes pudieron navegar sin
  257.     problemas por el sitio web sin encontrar problemas ni para
  258.     descargar una sola imagen ni encontrar un solo enlace roto. </p>
  259. </section>
  260.  
  261. </manualpage>
  262.  
  263.  
  264.