<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Los niveles de ejecución</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="sysv.html" title="Capítulo 11. Los archivos de arranque: init SYSV"><link rel="previous" href="ch11s01.html" title="Al comienzo estaba init"><link rel="next" href="ref-advanced-linux.html" title="Parte III. Usos avanzados"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Los niveles de ejecución</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch11s01.html">Anterior</a> </td><th width="60%" align="center">Capítulo 11. Los archivos de arranque: init SYSV</th><td width="20%" align="right"> <a accesskey="n" href="ref-advanced-linux.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sysv-levels"></a>Los niveles de ejecución</h2></div></div><div></div></div><p><a name="BId-sysv-pa8"></a>Todos los archivos relacionados con el arranque del sistema están ubicados en el directorio <tt class="filename">/etc/rc.d</tt>. Aquí tiene la lista de los mismos:</p><a name="BId-sysv-sc5"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ls /etc/rc.d init.d/ rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc.local* rc.sysinit* rc* rc1.d/ rc3.d/ rc5.d/ rc.alsa_default* rc.modules*</pre></td></tr></table><p><a name="BIdNEW-sysv-pa24"></a>Como ya se dijo, <span><b class="command">rc.sysinit</b></span> es el primer archivo ejecutado por el sistema. Este es el archivo responsable de poner en su lugar la configuración básica de la máquina: tipo de teclado, configuración de ciertos dispositivos, verificación del sistema de archivos, etc.</p><p><a name="BId-sysv-pa9"></a><a class="indexterm" name="BId-sysv-it2"></a>Luego se ejecuta el script <span><b class="command">rc</b></span>, con el nivel de ejecución deseado como argumento. Como hemos visto, el nivel de ejecución es un simple entero, y para cada nivel de ejecución <tt class="option"><x></tt> definido, debe haber un directorio <tt class="filename">rc<x>.d</tt> correspondiente. Entonces, en una instalación típica de <span class="application">Mandrakelinux</span>, puede ver que están definidos seis niveles de ejecución:</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-sysv-pa10"></a>0: Detención de la máquina por completo;</p></li><li><p><a name="BId-sysv-pa11"></a>1: modo <a name="BId-sysv-gt2" href="glossary.html#term-singleuser"><i class="glossterm">monousuario</i></a>; para ser usado en el caso de serios problemas o para la recuperación del sistema.</p></li><li><p><a name="BId-sysv-pa12"></a>2: modo <a name="BId-sysv-gt3" href="glossary.html#term-multiuser"><i class="glossterm">multiusuario</i></a>, sin soporte para redes;</p></li><li><p><a name="BId-sysv-pa13"></a>3: modo multiusuario, con soporte para redes;</p></li><li><p><a name="BId-sysv-pa14"></a>4: No usado;</p></li><li><p><a name="BId-sysv-pa15"></a>5: Como 3, pero con la ejecución de la interfaz gráfica de conexión;</p></li><li><p><a name="BId-sysv-pa16"></a>6: Volver a iniciar.</p></li></ul></div><p><a name="BId-sysv-pa17"></a>Observemos, por ejemplo, el contenido del directorio <tt class="filename">rc5.d</tt>:</p><a name="BId-sysv-sc6"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ls rc5.d K15postgresql@ K60atd@ S15netfs@ S60lpd@ S90xfs@ K20nfs@ K96pcmcia@ S20random@ S60nfs@ S99linuxconf@ K20rstatd@ S05apmd@ S30syslog@ S66yppasswdd@ S99local@ K20rusersd@ S10network@ S40crond@ S75keytable@ K20rwhod@ S11portmap@ S50inet@ S85gpm@ K30sendmail@ S12ypserv@ S55named@ S85httpd@ K35smb@ S13ypbind@ S55routed@ S85sound@</pre></td></tr></table><p><a name="BIdNEW-sysv-pa25"></a>Como puede ver, todos los archivos de este directorio son vínculos simbólicos, y todos tienen una forma muy específica. Su forma general es:</p><a name="BId-sysv-sc7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"><S|K><orden><nombre_del_servicio></pre></td></tr></table><p><a name="BIdNEW-sysv-pa26"></a>La <tt class="literal">S</tt> significa arrancar (<span class="foreignphrase"><i class="foreignphrase">Start</i></span>) el servicio, y la <tt class="literal">K</tt> significa detener (<span class="foreignphrase"><i class="foreignphrase">Kill</i></span>) el servicio. Los scripts se ejecutan por número de orden ascendente, y si dos scripts tienen el mismo número, se aplica el orden alfabético. También podemos ver que cada vínculo simbólico apunta a scripts ubicados en <tt class="filename">/etc/rc.d/init.d</tt> (excepto <span><b class="command">local</b></span>), script que es responsable de controlar un servicio específico.</p><p><a name="BId-sysv-pa18"></a>Cuando el sistema entra en un nivel de ejecución dado, comienza por ejecutar los vínculos <tt class="literal">K</tt> en orden: el comando <span><b class="command">rc</b></span> busca donde apunta el vínculo, luego llama al script correspondiente con un argumento solo: <tt class="literal">stop</tt> (detener). Luego ejecuta los scripts <tt class="literal">S</tt>, todavía usando el mismo método, excepto por el hecho de que los scripts se llaman con el argumento <tt class="literal">start</tt> (iniciar).</p><p><a name="BId-sysv-pa19"></a>Por lo tanto, sin mencionar a todos los scripts, podemos ver que cuando el sistema entra en el nivel de ejecución 5, primero ejecuta <span><b class="command">K15postgresql</b></span>, es decir, <span><b class="command">/etc/rc.d/init.d/postgresql stop</b></span>. Luego <span><b class="command">K20nfs</b></span>, luego <span><b class="command">K20rstatd</b></span>, hasta el último; acto seguido, ejecuta todos los scripts <tt class="literal">S</tt>: primero <span><b class="command">S05ampd</b></span>, que entonces invoca a <span><b class="command">/etc/rc.d/init.d/apmd start</b></span>, y así sucesivamente.</p><p><a name="BId-sysv-pa20"></a>Armado con toda esta información, Usted puede crear su propio nivel de ejecución completo en pocos minutos (por ejemplo, usando el nivel de ejecución 4), o evitar el arranque o la detención de un servicio borrando el vínculo simbólico correspondiente. También puede usar una cantidad de programas que son una interfaz para hacer esto, en particular <span class="application">drakxservices</span> (consulte <i class="citetitle"><a name="BId-sysv-ct1"></a>DrakXServices: Configurando los servicios al arranque</i> en <i class="citetitle">Guía de Comienzo</i>) que usa una interfaz gráfica, o <span><b class="command">chkconfig</b></span> para la configuración de modo texto.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png"></td><th align="left">Sugerencia</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BIdNEW-sysv-pa27"></a>También puede usar el comando <span><b class="command">chkconfig</b></span> para listar, añadir o quitar servicios en un nivel de ejecución específico. Consulte <span class="citerefentry"><span class="refentrytitle"><a name="BIdNEW-sysv-rt2"></a>chkconfig</span>(8)</span>.</p></td></tr></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch11s01.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="sysv.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="ref-advanced-linux.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Al comienzo estaba init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Parte III. Usos avanzados</td></tr></table></div></body></html>