Difference between revisions of "SysVinit (Español)"

From ArchWiki
Jump to: navigation, search
(Inittab)
(5 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
[[it:Init and inittab]]
 
[[it:Init and inittab]]
 
[[zh-CN:Init and inittab]]
 
[[zh-CN:Init and inittab]]
'''Init''' es el primer proceso que se ejecuta una vez que se carga el Kernel de Linux. Por defecto, en Arch, el programa que utiliza init es {{ic|/sbin/init}} proporcionado por el paquete {{Pkg|sysvinit}}. La palabra '''init''' siempre se refiere a sysvinit en este artículo.
+
'''Init''' es el primer proceso que se ejecuta una vez que se carga el Kernel de Linux. Por defecto, el programa init usado por el kernel es {{ic|/sbin/init}} proveido por {{Pkg|systemd-sysvcompat}} (de forma predeterminada en las instalaciones nuevas, véase [[systemd]]) o {{pkg|sysvinit}}. La palabra '''init''' siempre se refiere a sysvinit en este artículo.
  
 
'''inittab''' es el archivo de configuración inicial que encuentra init en {{ic|/etc}}. Contiene las instrucciones de inicio de los programas y scripts que van a funcionar al iniciar el nivel de ejecución especificado.
 
'''inittab''' es el archivo de configuración inicial que encuentra init en {{ic|/etc}}. Contiene las instrucciones de inicio de los programas y scripts que van a funcionar al iniciar el nivel de ejecución especificado.
  
{{Tip|Ver {{ic|man 5 inittab}} y {{ic|man 8 init}} para una descripción más formal y completa}}
+
{{Sugerencia|Ver {{ic|man 5 inittab}} y {{ic|man 8 init}} para una descripción más formal y completa}}
  
{{Tip|A pesar de que Arch hace uso de init, la mayor parte del trabajo se delega en [[#Scripts_Principales_de_Arranque|scripts de arranque]]. Este artículo se centra en init e inittab. Si usted está buscando una visión general del proceso de arranque de Arch, vea [[Arch Boot Process (Español)|Arch Boot Process]].}}
+
{{Sugerencia|A pesar de que Arch hace uso de init, la mayor parte del trabajo se delega en [[#Scripts_Principales_de_Arranque|scripts de arranque]]. Este artículo se centra en init e inittab. Si usted está buscando una visión general del proceso de arranque de Arch, vea [[Arch Boot Process (Español)|Arch Boot Process]].}}
  
 
== Descripción de init e inittab ==
 
== Descripción de init e inittab ==
Line 49: Line 49:
 
===A través del Gestor de Arranque===  
 
===A través del Gestor de Arranque===  
  
Para cambiar el nivel de ejecución (runlevel) al iniciar el sistema, simplemente agregue el nivel de ejecución deseado {{ic|n}} a la línea de configuración del gestor de arranque. Una solución similar a ésto se consigue con [[Start X at boot#inittab|inittab]]. Para arrancar con el nivel de ejecución deseado, agregue su número a los [[kernel parameters|parámetros del Kernel]] (por ejemplo, {{ic|3}} para el runlevel 3).
+
Para cambiar el nivel de ejecución (runlevel) al iniciar el sistema, simplemente agregue el nivel de ejecución deseado {{ic|n}} a la línea de configuración del gestor de arranque. Una solución similar a ésto se consigue con [[Start X at Login#inittab|inittab]]. Para arrancar con el nivel de ejecución deseado, agregue su número a los [[kernel parameters|parámetros del Kernel]] (por ejemplo, {{ic|3}} para el runlevel 3).
  
 
El nivel de ejecución se añade al final, por lo que el kernel sabe el nivel de ejecución que debe iniciar. Para utilizar otro programa de inicio (por ejemplo, [[systemd_(Español)|systemd]]), añada {{ic|1=init=/bin/systemd}} o similar.
 
El nivel de ejecución se añade al final, por lo que el kernel sabe el nivel de ejecución que debe iniciar. Para utilizar otro programa de inicio (por ejemplo, [[systemd_(Español)|systemd]]), añada {{ic|1=init=/bin/systemd}} o similar.
Line 61: Line 61:
 
init no revisa inittab. Será necesario recurrir a {{ic|telinit}} explícitamente e introducir modificaciones en inittab. El comando {{ic|telinit q}} hace que init re-examine inittab pero no cambia el nivel de ejecución.
 
init no revisa inittab. Será necesario recurrir a {{ic|telinit}} explícitamente e introducir modificaciones en inittab. El comando {{ic|telinit q}} hace que init re-examine inittab pero no cambia el nivel de ejecución.
  
==Inittab==  
+
==inittab==  
 
En esta sección se examinan las entradas comunes de inittab, en el mismo orden en que aparecen en el inittab por defecto utilizado por Arch. Después de ver algunos ejemplos le ayudarán a crear su propia entrada de inittab.
 
En esta sección se examinan las entradas comunes de inittab, en el mismo orden en que aparecen en el inittab por defecto utilizado por Arch. Después de ver algunos ejemplos le ayudarán a crear su propia entrada de inittab.
  
Line 101: Line 101:
 
}}
 
}}
  
=== Ctrl + Alt + Del ===
+
=== Ctrl+Alt+Supr ===
  
Cuando se presiona la secuencia especial de teclas {{Keypress|Ctrl+Alt+Del}}, esta entrada determina la acción a realizar.
+
Cuando se presiona la secuencia especial de teclas {{Keypress|Ctrl+Alt+Supr}}, esta entrada determina la acción a realizar.
  
 
{{bc|
 
{{bc|
Line 148: Line 148:
 
== Véase también ==
 
== Véase también ==
  
*[[Automatic login to virtual console]]
+
*[[Automatic login to virtual console (Español)]]
 
*[[Disable Clearing of Boot Messages]]
 
*[[Disable Clearing of Boot Messages]]
*[[Start X at boot]]
+
*[[Start X at Login (Español)]]
*[[xinitrc]]
+
*[[xinitrc (Español)]]
*[[Display Manager]]
+
*[[Display Manager (Español)]]
*[[slim]]
+
*[[SLiM]]
  
 
== Enlaces externos ==
 
== Enlaces externos ==

Revision as of 19:08, 12 December 2012

Init es el primer proceso que se ejecuta una vez que se carga el Kernel de Linux. Por defecto, el programa init usado por el kernel es /sbin/init proveido por systemd-sysvcompat (de forma predeterminada en las instalaciones nuevas, véase systemd) o sysvinit. La palabra init siempre se refiere a sysvinit en este artículo.

inittab es el archivo de configuración inicial que encuentra init en /etc. Contiene las instrucciones de inicio de los programas y scripts que van a funcionar al iniciar el nivel de ejecución especificado.

Sugerencia: Ver man 5 inittab y man 8 init para una descripción más formal y completa
Sugerencia: A pesar de que Arch hace uso de init, la mayor parte del trabajo se delega en scripts de arranque. Este artículo se centra en init e inittab. Si usted está buscando una visión general del proceso de arranque de Arch, vea Arch Boot Process.

Descripción de init e inittab

init es siempre un proceso y, aparte de gestionar el espacio de intercambio, es el proceso padre a todos los demás procesos. Usted puede imaginar dónde se encuentra init en la jerarquía de procesos de su sistema con pstree:

$ pstree -Ap
init(1)-+-acpid(3432)
        |-crond(3423)
        |-dbus-daemon(3469)
        |-gpm(3485)
        |-mylogin(3536)
        |-ngetty(3535)---login(3954)---zsh(4043)---pstree(4326)
        |-polkitd(4033)---{polkitd}(4035)
        |-syslog-ng(3413)---syslog-ng(3414)
        `-udevd(643)-+-udevd(3194)
                     `-udevd(3218)

Además de la inicialización normal del sistema (como su nombre indica), init también se encarga de reiniciar, apagar y arrancar en modo de recuperación (single-user mode).

Para apoyar a ésto, inittab contiene grupos con diferentes niveles de ejecución .

Los niveles de ejecución usados por Arch son 0 para detener, 1 (S como alias) para el modo single-user, 3 para el arranque normal (modo multi-usuario), 5 para X y 6 para reiniciar el sistema. Otras distribuciones pueden adoptar otros convenios, pero los significados de 0, 1 y 6 son universales.

Tras la ejecución, init explora inittab y lleva a cabo las acciones oportunas. Una entrada en inittab toma la forma siguiente:

id:runlevels:action:process

Donde id es un identificador único para la entrada (sólo un nombre, sin efecto real en init), y runlevels es una cadena de los niveles de ejecución (no incluida). Si el nivel de ejecución de init está indicado en runlevels, la acción se llevará a cabo action , ejecutando process en su caso. Algunas acciones especiales de actions podrían hacer que init hiciese caso omiso de runlevels y adoptar un método de ejecución especial. Una explicación más detallada a continuación en la siguiente sección.

Cambiar runlevel (nivel de ejecución)

A través del Gestor de Arranque

Para cambiar el nivel de ejecución (runlevel) al iniciar el sistema, simplemente agregue el nivel de ejecución deseado n a la línea de configuración del gestor de arranque. Una solución similar a ésto se consigue con inittab. Para arrancar con el nivel de ejecución deseado, agregue su número a los parámetros del Kernel (por ejemplo, 3 para el runlevel 3).

El nivel de ejecución se añade al final, por lo que el kernel sabe el nivel de ejecución que debe iniciar. Para utilizar otro programa de inicio (por ejemplo, systemd), añada init=/bin/systemd o similar.

Nota: Si está usando un parámetro de init distinto de sysvinit, el valor de runlevel puede ser ignorado.

Después de Arrancar

Después de que el sistema ha arrancado, puede invocar telinit n para informar a init que cambie el nivel de ejecución a n. init lee el nivel de ejecución n de inittab y "diffs", cancela la ejecución del runlevel anterior, y permite llevar a cabo acciones que no están presentes en el nivel de ejecución anterior. Los procesos actuales en los dos niveles de ejecución se deja intacto. El procedimiento de cancelación es en realidad un poco complejo, de nuevo, los detalles técnicos se pueden encontrar en la página de init manpage.

init no revisa inittab. Será necesario recurrir a telinit explícitamente e introducir modificaciones en inittab. El comando telinit q hace que init re-examine inittab pero no cambia el nivel de ejecución.

inittab

En esta sección se examinan las entradas comunes de inittab, en el mismo orden en que aparecen en el inittab por defecto utilizado por Arch. Después de ver algunos ejemplos le ayudarán a crear su propia entrada de inittab.

Advertencia: Siempre que modifique /etc/inittab pruébelo con telinit q antes de reiniciar, dado que un error de sintaxis pequeño puede evitar que su sistema arranque.

Runlevel por defecto

El nivel de ejecución (runlevel) predeterminado es 3. Coméntelo, y descomente la opción que sigue si prefiere arrancar en el nivel 5 (que se utiliza para X comunmente) por defecto:

id:5:initdefault:

Scripts Principales de Arranque

Se trata de la secuencia de comandos de inicio principal de Arch.

rc::sysinit:/etc/rc.sysinit
rs:S1:wait:/etc/rc.single
rm:2345:wait:/etc/rc.multi
rh:06:wait:/etc/rc.shutdown

Arranque en Usuario Único

A veces, su Kernel puede no arrancar del todo, debido a un disco duro dañado o un sistema de archivos corrupto, ausencia de claves de archivos, etc En este caso, su imagen de inicio puede entrar de forma automática en modo de usuario único, que sólo se permite el acceso como root y utiliza /sbin/sulogin en lugar de /sbin/login para controlar el proceso de inicio de sesión. Usted puede entrar en modo de usuario único mediante la adición de la letra S a la de línea de comandos del kernel en la configuración de GRUB, LILO, o syslinux. Si desea ejecutar algo que no sea sulogin, especifique ésto:

su:S:wait:/sbin/sulogin -p

Gettys e Inicio de Sesión

Estas son los elementos básicos que se están ejecutando en sus terminales gettys. La mayoría de las configuraciones por defecto tendrá gettys que se ejecutan en varios ttyS1-6, que hará visualizar en la pantalla el símbolo de login. Véase también openvt, chvt, stty, y ioctl.

c1:234:respawn:/sbin/agetty 9600 tty1 xterm-color
c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color

Ctrl+Alt+Supr

Cuando se presiona la secuencia especial de teclas Template:Keypress, esta entrada determina la acción a realizar.

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Programas de X

Si usted está interesado en la depuración, puede lanzar cualquier aplicación que utilice inittab. Un programa útil a ejecutar es el gestor de login cuando el nivel de ejecución es 5, multi-user-x-mode. En el siguiente ejemplo se puede ver cómo empezar SLiM al entrar en el nivel de ejecución 5.

x:5:respawn:/usr/bin/slim >/dev/null 2>&1
#x:5:respawn:/usr/bin/xdm -nodaemon -confi /etc/X11/xdm/archlinux/xdm-config

Power-Sensing Scripts

Init puede comunicarse con el dispositivo UPS y ejecutar procesos basados ​​en el status de UPS. He aquí algunos ejemplos:

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

Solicitud de teclado personalizado

La línea siguiente agrega una función personalizada para cuando una secuencia especial de teclas se pulsa. Usted puede modificar esta secuencia de teclas especial como quiera, siguiendo la sintexis de ctrl+alt+del.

kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"

Lanzar kbrequest

Usted puede activar la secuencia especial de teclas kbrequest mediante el envío de la señal WINCH al proceso init (1) como root (a través de sudo). Con este comando:

 kill -WINCH 1

escribiendo mediante wall en todas las ttys:

Broadcast message from root@askapachehost (console) (Wed Oct 27 14:02:26 2010):
Keyboard Request -- edit /etc/inittab to customize

Véase también

Enlaces externos