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

From ArchWiki
Jump to: navigation, search
(Power-Sensing Scripts)
(Programas de X)
(5 intermediate revisions by the same user not shown)
Line 50: Line 50:
 
==Cambiar runlevel (nivel de ejecución)==  
 
==Cambiar runlevel (nivel de ejecución)==  
  
===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 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).
 
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).
Line 58: Line 58:
 
{{Nota|Si está usando un parámetro de init distinto de sysvinit, el valor de runlevel puede ser ignorado.}}
 
{{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 arrancar===
  
 
Después de que el sistema ha arrancado, puede invocar {{ic|telinit n}} para informar a init que cambie el nivel de ejecución a {{ic|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.
 
Después de que el sistema ha arrancado, puede invocar {{ic|telinit n}} para informar a init que cambie el nivel de ejecución a {{ic|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.
Line 77: Line 77:
 
}}
 
}}
  
===Scripts Principales de Arranque ===  
+
===Scripts principales de arranque ===  
 
Se trata de la secuencia de comandos de inicio principal de Arch.
 
Se trata de la secuencia de comandos de inicio principal de Arch.
  
Line 114: Line 114:
 
===Programas de X===
 
===Programas de X===
  
Si usted está interesado en la depuración, puede lanzar cualquier aplicación que utilice {{ic|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.
+
Si usted está interesado en la depuración de errores, puede lanzar cualquier aplicación que utilice desde {{ic|inittab}}. Un programa útil a ejecutar es el gestor de inicio de sesión, que se lanzará cuando el nivel de ejecución es 5, multi-user-x-mode. En el siguiente ejemplo se puede ver cómo empezar [[SLiM]] cuando se le coloca el nivel de ejecución 5.
  
 
{{bc|
 
{{bc|

Revision as of 12:32, 6 October 2013

Advertencia: SysVinit está en desuso en Arch Linux [1] y se ha retirado de los repositorios oficiales. Es necesario actualizar a systemd.

En los sistemas basados en SysVinit, 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.

Aunque un sistema Arch basado en SysVinit no utiliza init, la mayor parte del trabajo se delega en los #Scripts Principales de Arranque. Este artículo se centra en init e inittab.

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.

Instalación

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: This section should explain how to replace systemd with sysvinitAUR. (Discuss in Talk:SysVinit (Español)#)

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 modalidad de 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 Ctrl+Alt+Supr, 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 de errores, puede lanzar cualquier aplicación que utilice desde inittab. Un programa útil a ejecutar es el gestor de inicio de sesión, que se lanzará cuando el nivel de ejecución es 5, multi-user-x-mode. En el siguiente ejemplo se puede ver cómo empezar SLiM cuando se le coloca 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

Scripts Power-Sensing

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