⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stopping.xml.es

📁 Apache HTTP Server 是一个功能强大的灵活的与HTTP/1.1相兼容的web服务器.这里给出的是Apache HTTP服务器的源码。
💻 ES
字号:
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"><?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?><!-- English Revision: 151405 --><!-- Copyright 2004-2005 The Apache Software Foundation or it licensors,                     as applicable. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at     http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.--><manualpage metafile="stopping.xml.meta">  <title>Iniciar y Parar el servidor Apache</title><summary>    <p>Este documento explica como iniciar y parar el servidor Apache     en sistemas tipo Unix. Los usuarios de Windows NT, 2000 y XP     deben consultar la secci&#243;n <a     href="platform/windows.html#winsvc">Ejecutar Apache como un     servicio</a> y los usuario de Windows 9x y ME deben consultar <a     href="platform/windows.html#wincons">Ejecutar Apache como una     Aplicaci&#243;n de Consola</a> para obtener informaci&#243;n     sobre como controlar Apache en esas plataformas.</p></summary><seealso><program>httpd</program></seealso><seealso><program>apachectl</program></seealso><section id="introduction"><title>Introducci&#243;n</title>    <p>Para parar y reiniciar Apache, hay que enviar la se&#241;al    apropiada al proceso padre <program>httpd</program> que se est&#233;    ejecutando.  Hay dos maneras de enviar estas se&#241;ales.  En    primer lugar, puede usar el comando de Unix <code>kill</code> que    env&#237;a se&#241;ales directamente a los procesos. Puede que    tenga varios procesos <program>httpd</program> ejecutandose en su    sistema, pero las se&#241;ales deben enviarse solamente al proceso    padre, cuyo pid est&#225; especificado en la directiva <directive    module="mpm_common">PidFile</directive>. Esto quiere decir que no    debe necesitar enviar se&#241;ales a ning&#250;n proceso excepto    al proceso padre. Hay tres se&#241;ales que puede enviar al    proceso padre: <code><a href="#term">TERM</a></code>, <code><a    href="#hup">HUP</a></code>, y <code><a    href="#graceful">USR1</a></code>, que van a ser descritas a    continuaci&#243;n.</p>    <p>Para enviar una se&#241;al al proceso padre debe escribir un    comando como el que se muestra en el ejemplo:</p><example>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</example>    <p>La segunda manera de enviar se&#241;ales a los procesos    <program>httpd</program> es usando las opciones de l&#237;nea de    comandos <code>-k</code>: <code>stop</code>, <code>restart</code>,    y <code>graceful</code>, como se muestra m&#225;s abajo.  Estas    opciones se le pueden pasar al binario <program>httpd</program>,    pero se recomienda que se pasen al script de control    <program>apachectl</program>, que a su vez los pasar&#225; a    <code>httpd</code>.</p>    <p>Despu&#233;s de haber enviado las se&#241;ales que desee a    <program>httpd</program>, puede ver c&#243;mo progresa el proceso    escribiendo:</p><example>tail -f /usr/local/apache2/logs/error_log</example>    <p>Modifique estos ejemplos para que coincidan con la    configuraci&#243;n que tenga especificada en las directivas    <directive module="core">ServerRoot</directive> y <directive    module="mpm_common">PidFile</directive> en su fichero principal de    configuraci&#243;n.</p></section><section id="term"><title>Parar Apache</title><dl><dt>Se&#241;al: TERM</dt><dd><code>apachectl -k stop</code></dd></dl>    <p>Enviar las se&#241;ales <code>TERM</code> o <code>stop</code>    al proceso padre hace que se intenten eliminar todos los procesos    hijo inmediatamente. Esto puede tardar algunos minutos. Una vez    que hayan terminado todos los procesos hijo, terminar&#225; el    proceso padre. Cualquier petici&#243;n en proceso terminar&#225;    inmediatanmente, y ninguna petici&#243;n posterior ser&#225;    atendida.</p></section><section id="graceful"><title>Reinicio Graceful</title><dl><dt>Se&#241;al: USR1</dt><dd><code>apachectl -k graceful</code></dd></dl>    <p>Las se&#241;ales <code>USR1</code> o <code>graceful</code>    hacen que el proceso padre <em>indique</em> a sus hijos que    terminen despu&#233;s de servir la petici&#243;n que est&#233;n    atendiendo en ese momento (o de inmediato si no est&#225;n    sirviendo ninguna petici&#243;n). El proceso padre lee de nuevo    sus ficheros de configuraci&#243;n y vuelve a abrir sus ficheros    log. Conforme cada hijo va terminando, el proceso padre lo va    sustituyendo con un hijo de una nueva <em>generaci&#243;n</em> con    la nueva configuraci&#243;n, que empeciezan a servir peticiones    inmediatamente.</p>    <note>En algunas plataformas que no permiten usar    <code>USR1</code> para reinicios graceful, puede usarse una    se&#241;al alternativa (como <code>WINCH</code>). Tambien puede    usar <code>apachectl graceful</code> y el script de control    enviar&#225; la se&#241;al adecuada para su plataforma.</note>    <p>Apache est&#225; dise&#241;ado para respetar en todo momento la    directiva de control de procesos de los MPM, as&#237; como para    que el n&#250;mero de procesos y hebras disponibles para servir a    los clientes se mantenga en los valores adecuados durante el    proceso de reinicio.  A&#250;n m&#225;s, est&#225; dise&#241;ado    para respetar la directiva <directive    module="mpm_common">StartServers</directive> de la siguiente    manera: si despu&#233;s de al menos un segundo el nuevo hijo de la    directiva <directive module="mpm_common">StartServers</directive>    no ha sido creado, entonces crea los suficientes para se atienda    el trabajo que queda por hacer. As&#237;, se intenta mantener    tanto el n&#250;mero de hijos adecuado para el trabajo que el    servidor tenga en ese momento, como respetar la configuraci&#243;n    determinada por los par&#225;metros de la directiva    <directive>StartServers</directive>.</p>    <p>Los usuarios del m&#243;dulo <module>mod_status</module>    notar&#225;n que las estad&#237;sticas del servidor    <strong>no</strong> se ponen a cero cuando se usa la se&#241;al    <code>USR1</code>. Apache fue escrito tanto para minimizar el    tiempo en el que el servidor no puede servir nuevas peticiones    (que se pondr&#225;n en cola por el sistema operativo, de modo que    se no se pierda ning&#250;n evento), como para respetar sus    par&#225;metros de ajuste. Para hacer esto, tiene que guardar el    <em>scoreboard</em> usado para llevar el registro de los procesos    hijo a trav&#233;s de las distintas generaciones.</p>    <p>El mod_status tambi&#233;n usa una <code>G</code> para indicar    que esos hijos est&#225;n todav&#237;a sirviendo peticiones    previas al reinicio graceful.</p>    <p>Actualmente no existe ninguna manera de que un script con un    log de rotaci&#243;n usando <code>USR1</code> sepa con seguridad    que todos los hijos que se registraron en el log con anterioridad    al reinicio han terminado. Se aconseja que se use un retardo    adecuado despu&#233;s de enviar la se&#241;al <code>USR1</code>    antes de hacer nada con el log antiguo. Por ejemplo, si la mayor    parte las visitas que recibe de usuarios que tienen conexiones de    baja velocidad tardan menos de 10 minutos en completarse, entoces    espere 15 minutos antes de hacer nada con el log antiguo.</p>    <note>Si su fichero de configuraci&#243;n tiene errores cuando    haga el reinicio, entonces el proceso padre no se reinciciar&#225;    y terminar&#225; con un error. En caso de un reinicio graceful,    tambi&#233;n dejar&#225; a los procesos hijo ejecutandose mientras    existan.  (Estos son los hijos de los que se est&#225; saliendo de    forma graceful y que est&#225;n sirviendo sus &#250;ltimas    peticiones.) Esto provocar&#225; problemas si intenta reiniciar el    servidor -- no ser&#225; posible conectarse a la lista de puertos    de escucha. Antes de reiniciar, puede comprobar que la sintaxis de    sus ficheros de configuracion es correcta con la opci&#243;n de    l&#237;nea de comandos <code>-t</code> (consulte    <program>httpd</program>). No obstante, esto no garantiza que el    servidor se reinicie correctamente. Para comprobar que no hay    errores en los ficheros de configuraci&#243;n, puede intentar    iniciar <program>httpd</program> con un usuario diferente a root. Si no    hay errores, intentar&#225; abrir sus sockets y logs y    fallar&#225; porque el usuario no es root (o porque el    <program>httpd</program> que se est&#225; ejecutando en ese momento ya    est&#225; conectado a esos puertos). Si falla por cualquier otra    raz&#243;n, entonces casi seguro que hay alg&#250;n error en    alguno de los ficheros de configuraci&#243;n y debe corregir ese o    esos errores antes de hacer un reinicio graceful.</note></section><section id="hup"><title>Reiniciar Apache</title><dl><dt>Se&#241;al: HUP</dt><dd><code>apachectl -k restart</code></dd></dl>    <p>El env&#237;o de las se&#241;ales <code>HUP</code> o    <code>restart</code> al proceso padre hace que los procesos hijo    terminen como si le envi&#225; ramos la se&#241;al    <code>TERM</code>, para eliminar el proceso padre. La diferencia    est&#225; en que estas se&#241;ales vuelven a leer los archivos de    configuraci&#243;n y vuelven a abrir los ficheros log. Se genera    un nuevo conjunto de hijos y se contin&#250;a sirviendo    peticiones.</p>    <p>Los usuarios del m&#243;dulo <module>mod_status</module>    notar&#225;n que las estad&#237;sticas del servidor se ponen a    cero cuando se env&#237;a la se&#241;al <code>HUP</code>.</p><note>Si su fichero de configuraci&#243;n contiene errores, cuandointente reiniciar, el proceso padre del servidor no sereiniciar&#225;, sino que terminar&#225; con un error. Consultem&#225;s arriba c&#243;mo puede solucionar este problema.</note></section><section id="race"><title>Ap&#233;ndice: se&#241;ales y race conditions</title>    <p>Con anterioridad a la versi&#243;n de Apache 1.2b9 hab&#237;a    varias <em>race conditions</em> implicadas en las se&#241;ales    para parar y reiniciar procesos (una descripci&#243;n sencilla de    una race condition es: un problema relacionado con el momento en    que suceden las cosas, como si algo sucediera en momento en que no    debe, y entonces el resultado esperado no se corresponde con el    obtenido). Para aquellas arquitecturas que tienen el conjunto de    caracter&#237;sticas "adecuadas", se han eliminado tantas race    conditions como ha sido posible. Pero hay que tener en cuenta que    todav&#237;a existen race conditions en algunas arquitecturas.</p>    <p>En las arquitecturas que usan un <directive    module="mpm_common">ScoreBoardFile</directive> en disco, existe la    posibilidad de que se corrompan los scoreboards. Esto puede hacer    que se produzca el error "bind: Address already in use"    (despu&#233;s de usar<code>HUP</code>) o el error "long lost child    came home!"  (despu&#233;s de usar <code>USR1</code>). En el    primer caso se trata de un error irrecuperable, mientras que en el    segundo, solo ocurre que el servidor pierde un slot del    scoreboard. Por lo tanto, ser&#237;a aconsejable usar reinicios    graceful, y solo hacer reinicios normales de forma    ocasional. Estos problemas son bastante complicados de solucionar,    pero afortunadamente casi ninguna arquitectura necesita un fichero    scoreboard. Consulte la documentaci&#243;n de la directiva    <directive module="mpm_common">ScoreBoardFile</directive> para ver    las arquitecturas que la usan.</p>    <p>Todas las arquitecturas tienen una peque&#241;a race condition    en cada proceso hijo implicada en la segunda y subsiguientes    peticiones en una conexi&#243;n HTTP persistente    (KeepAlive). Puede ser que el servidor termine despu&#233;s de    leer la l&#237;nea de petici&#243;n pero antes de leer cualquiera    de las cebeceras de petici&#243;n. Hay una soluci&#243;n que fue    descubierta demasiado tarde para la incluirla en versi&#243;n    1.2. En teoria esto no debe suponer ning&#250;n problema porque el    cliente KeepAlive ha de esperar que estas cosas pasen debido a los    retardos de red y a los timeouts que a veces dan los    servidores. En la practica, parece que no afecta a nada m&#225;s    -- en una sesi&#243;n de pruebas, un servidor se reinici&#243;    veinte veces por segundo y los clientes pudieron navegar sin    problemas por el sitio web sin encontrar problemas ni para    descargar una sola imagen ni encontrar un solo enlace roto. </p></section></manualpage>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -