1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Iniciar y Parar el servidor Apache - Servidor HTTP Apache</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p>
18 <p class="apache">Versión 2.5 del Servidor HTTP Apache</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
22 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="./">Versión 2.5</a></div><div id="page-content"><div id="preamble"><h1>Iniciar y Parar el servidor Apache</h1>
24 <p><span>Idiomas disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
25 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
26 <a href="./es/stopping.html" title="Español"> es </a> |
27 <a href="./fr/stopping.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
28 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
29 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
30 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
32 <div class="outofdate">Esta traducción podría estar
33 obsoleta. Consulte la versión en inglés de la
34 documentación para comprobar si se han producido cambios
37 <p>Este documento explica como iniciar y parar el servidor Apache
38 en sistemas tipo Unix. Los usuarios de Windows NT, 2000 y XP
39 deben consultar la sección <a href="platform/windows.html#winsvc">Ejecutar Apache como un
40 servicio</a> y los usuario de Windows 9x y ME deben consultar <a href="platform/windows.html#wincons">Ejecutar Apache como una
41 Aplicación de Consola</a> para obtener información
42 sobre como controlar Apache en esas plataformas.</p>
44 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introducción</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#term">Parar Apache</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Reinicio Graceful</a></li>
47 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Reiniciar Apache</a></li>
48 <li><img alt="" src="./images/down.gif" /> <a href="#race">Apéndice: señales y race conditions</a></li>
49 </ul><h3>Consulte también</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comentarios</a></li></ul></div>
50 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
52 <h2><a name="introduction" id="introduction">Introducción</a></h2>
54 <p>Para parar y reiniciar Apache, hay que enviar la señal
55 apropiada al proceso padre <code>httpd</code> que se esté
56 ejecutando. Hay dos maneras de enviar estas señales. En
57 primer lugar, puede usar el comando de Unix <code>kill</code> que
58 envía señales directamente a los procesos. Puede que
59 tenga varios procesos <code>httpd</code> ejecutandose en su
60 sistema, pero las señales deben enviarse solamente al proceso
61 padre, cuyo pid está especificado en la directiva <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. Esto quiere decir que no
62 debe necesitar enviar señales a ningún proceso excepto
63 al proceso padre. Hay tres señales que puede enviar al
64 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
67 <p>Para enviar una señal al proceso padre debe escribir un
68 comando como el que se muestra en el ejemplo:</p>
70 <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
72 <p>La segunda manera de enviar señales a los procesos
73 <code>httpd</code> es usando las opciones de línea de
74 comandos <code>-k</code>: <code>stop</code>, <code>restart</code>,
75 y <code>graceful</code>, como se muestra más abajo. Estas
76 opciones se le pueden pasar al binario <a href="programs/httpd.html">httpd</a>, pero se recomienda que se
77 pasen al script de control <a href="programs/apachectl.html">apachectl</a>, que a su vez los
78 pasará a <code>httpd</code>.</p>
80 <p>Después de haber enviado las señales que desee a
81 <code>httpd</code>, puede ver como progresa el proceso
84 <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
86 <p>Modifique estos ejemplos para que coincidan con la
87 configuración que tenga especificada en las directivas
88 <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> y <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> en su fichero principal de
90 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
92 <h2><a name="term" id="term">Parar Apache</a></h2>
94 <dl><dt>Señal: TERM</dt>
95 <dd><code>apachectl -k stop</code></dd>
98 <p>Enviar las señales <code>TERM</code> o <code>stop</code>
99 al proceso padre hace que se intenten eliminar todos los procesos
100 hijo inmediatamente. Esto puede tardar algunos minutos. Una vez
101 que hayan terminado todos los procesos hijo, terminará el
102 proceso padre. Cualquier petición en proceso terminará
103 inmediatanmente, y ninguna petición posterior será
105 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
106 <div class="section">
107 <h2><a name="graceful" id="graceful">Reinicio Graceful</a></h2>
109 <dl><dt>Señal: USR1</dt>
110 <dd><code>apachectl -k graceful</code></dd>
113 <p>Las señales <code>USR1</code> o <code>graceful</code>
114 hacen que el proceso padre <em>indique</em> a sus hijos que
115 terminen después de servir la petición que estén
116 atendiendo en ese momento (o de inmediato si no están
117 sirviendo ninguna petición). El proceso padre lee de nuevo
118 sus ficheros de configuración y vuelve a abrir sus ficheros
119 log. Conforme cada hijo va terminando, el proceso padre lo va
120 sustituyendo con un hijo de una nueva <em>generación</em> con
121 la nueva configuración, que empeciezan a servir peticiones
124 <div class="note">En algunas plataformas que no permiten usar
125 <code>USR1</code> para reinicios graceful, puede usarse una
126 señal alternativa (como <code>WINCH</code>). Tambien puede
127 usar <code>apachectl graceful</code> y el script de control
128 enviará la señal adecuada para su plataforma.</div>
130 <p>Apache está diseñado para respetar en todo momento la
131 directiva de control de procesos de los MPM, así como para
132 que el número de procesos y hebras disponibles para servir a
133 los clientes se mantenga en los valores adecuados durante el
134 proceso de reinicio. Aún más, está diseñado
135 para respetar la directiva <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> de la siguiente
136 manera: si después de al menos un segundo el nuevo hijo de la
137 directiva <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
138 no ha sido creado, entonces crea los suficientes para se atienda
139 el trabajo que queda por hacer. Así, se intenta mantener
140 tanto el número de hijos adecuado para el trabajo que el
141 servidor tenga en ese momento, como respetar la configuración
142 determinada por los parámetros de la directiva
143 <code class="directive">StartServers</code>.</p>
145 <p>Los usuarios del módulo <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
146 notarán que las estadísticas del servidor
147 <strong>no</strong> se ponen a cero cuando se usa la señal
148 <code>USR1</code>. Apache fue escrito tanto para minimizar el
149 tiempo en el que el servidor no puede servir nuevas peticiones
150 (que se pondrán en cola por el sistema operativo, de modo que
151 se no se pierda ningún evento), como para respetar sus
152 parámetros de ajuste. Para hacer esto, tiene que guardar el
153 <em>scoreboard</em> usado para llevar el registro de los procesos
154 hijo a través de las distintas generaciones.</p>
156 <p>El mod_status también usa una <code>G</code> para indicar
157 que esos hijos están todavía sirviendo peticiones
158 previas al reinicio graceful.</p>
160 <p>Actualmente no existe ninguna manera de que un script con un
161 log de rotación usando <code>USR1</code> sepa con seguridad
162 que todos los hijos que se registraron en el log con anterioridad
163 al reinicio han terminado. Se aconseja que se use un retardo
164 adecuado después de enviar la señal <code>USR1</code>
165 antes de hacer nada con el log antiguo. Por ejemplo, si la mayor
166 parte las visitas que recibe de usuarios que tienen conexiones de
167 baja velocidad tardan menos de 10 minutos en completarse, entoces
168 espere 15 minutos antes de hacer nada con el log antiguo.</p>
170 <div class="note">Si su fichero de configuración tiene errores cuando
171 haga el reinicio, entonces el proceso padre no se reinciciará
172 y terminará con un error. En caso de un reinicio graceful,
173 también dejará a los procesos hijo ejecutandose mientras
174 existan. (Estos son los hijos de los que se está saliendo de
175 forma graceful y que están sirviendo sus últimas
176 peticiones.) Esto provocará problemas si intenta reiniciar el
177 servidor -- no será posible conectarse a la lista de puertos
178 de escucha. Antes de reiniciar, puede comprobar que la sintaxis de
179 sus ficheros de configuracion es correcta con la opción de
180 línea de comandos <code>-t</code> (consulte <a href="programs/httpd.html">httpd</a>). No obstante, esto no
181 garantiza que el servidor se reinicie correctamente. Para
182 comprobar que no hay errores en los ficheros de
183 configuración, puede intentar iniciar <code>httpd</code> con
184 un usuario diferente a root. Si no hay errores, intentará
185 abrir sus sockets y logs y fallará porque el usuario no es
186 root (o porque el <code>httpd</code> que se está ejecutando
187 en ese momento ya está conectado a esos puertos). Si falla
188 por cualquier otra razón, entonces casi seguro que hay
189 algún error en alguno de los ficheros de configuración y
190 debe corregir ese o esos errores antes de hacer un reinicio
192 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
193 <div class="section">
194 <h2><a name="hup" id="hup">Reiniciar Apache</a></h2>
196 <dl><dt>Señal: HUP</dt>
197 <dd><code>apachectl -k restart</code></dd>
200 <p>El envío de las señales <code>HUP</code> o
201 <code>restart</code> al proceso padre hace que los procesos hijo
202 terminen como si le enviá ramos la señal
203 <code>TERM</code>, para eliminar el proceso padre. La diferencia
204 está en que estas señales vuelven a leer los archivos de
205 configuración y vuelven a abrir los ficheros log. Se genera
206 un nuevo conjunto de hijos y se continúa sirviendo
209 <p>Los usuarios del módulo <code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
210 notarán que las estadísticas del servidor se ponen a
211 cero cuando se envía la señal <code>HUP</code>.</p>
213 <div class="note">Si su fichero de configuración contiene errores, cuando
214 intente reiniciar, el proceso padre del servidor no se
215 reiniciará, sino que terminará con un error. Consulte
216 más arriba cómo puede solucionar este problema.</div>
217 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
218 <div class="section">
219 <h2><a name="race" id="race">Apéndice: señales y race conditions</a></h2>
221 <p>Con anterioridad a la versión de Apache 1.2b9 había
222 varias <em>race conditions</em> implicadas en las señales
223 para parar y reiniciar procesos (una descripción sencilla de
224 una race condition es: un problema relacionado con el momento en
225 que suceden las cosas, como si algo sucediera en momento en que no
226 debe, y entonces el resultado esperado no se corresponde con el
227 obtenido). Para aquellas arquitecturas que tienen el conjunto de
228 características "adecuadas", se han eliminado tantas race
229 conditions como ha sido posible. Pero hay que tener en cuenta que
230 todavía existen race conditions en algunas arquitecturas.</p>
232 <p>En las arquitecturas que usan un <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> en disco, existe la
233 posibilidad de que se corrompan los scoreboards. Esto puede hacer
234 que se produzca el error "bind: Address already in use"
235 (después de usar<code>HUP</code>) o el error "long lost child
236 came home!" (después de usar <code>USR1</code>). En el
237 primer caso se trata de un error irrecuperable, mientras que en el
238 segundo, solo ocurre que el servidor pierde un slot del
239 scoreboard. Por lo tanto, sería aconsejable usar reinicios
240 graceful, y solo hacer reinicios normales de forma
241 ocasional. Estos problemas son bastante complicados de solucionar,
242 pero afortunadamente casi ninguna arquitectura necesita un fichero
243 scoreboard. Consulte la documentación de la directiva
244 <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> para ver
245 las arquitecturas que la usan.</p>
247 <p>Todas las arquitecturas tienen una pequeña race condition
248 en cada proceso hijo implicada en la segunda y subsiguientes
249 peticiones en una conexión HTTP persistente
250 (KeepAlive). Puede ser que el servidor termine después de
251 leer la línea de petición pero antes de leer cualquiera
252 de las cebeceras de petición. Hay una solución que fue
253 descubierta demasiado tarde para la incluirla en versión
254 1.2. En teoria esto no debe suponer ningún problema porque el
255 cliente KeepAlive ha de esperar que estas cosas pasen debido a los
256 retardos de red y a los timeouts que a veces dan los
257 servidores. En la practica, parece que no afecta a nada más
258 -- en una sesión de pruebas, un servidor se reinició
259 veinte veces por segundo y los clientes pudieron navegar sin
260 problemas por el sitio web sin encontrar problemas ni para
261 descargar una sola imagen ni encontrar un solo enlace roto. </p>
263 <div class="bottomlang">
264 <p><span>Idiomas disponibles: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
265 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
266 <a href="./es/stopping.html" title="Español"> es </a> |
267 <a href="./fr/stopping.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
268 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
269 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
270 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
271 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comentarios</a></h2><div class="warning"><strong>This section is experimental!</strong><br />Comments placed here should not be expected
272 to last beyond the testing phase of this system, nor do we in any way guarantee that we'll read them.</div>
273 <script type="text/javascript"><!--//--><![CDATA[//><!--
275 var disqus_shortname = 'httpd';
276 var disqus_identifier = window.location.href.replace(/(current|trunk)/, "2.4").replace(/\/[a-z]{2}\//, "/").replace(window.location.protocol, "http:") + '.' + lang;
277 if (disqus_identifier.indexOf("httpd.apache.org") == -1) {
278 document.write('<div id="disqus_thread">\n</div>');
280 var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
281 dsq.src = window.location.protocol + '//' + disqus_shortname + '.disqus.com/embed.js';
282 (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
285 document.write("Comments have been disabled for offline viewing.");
287 //--><!]]></script></div><div id="footer">
288 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
289 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
290 if (typeof(prettyPrint) !== undefined) {