Start X at Boot (Português)

From ArchWiki
Revision as of 07:54, 16 June 2012 by Kynikos.bot (Talk | contribs) (rm temporary i18n template)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Tipicamente, startx ou xinit são utilizados para iniciar o X manualmente. Ambos executam o ~/.xinitrc, que deve ser customizado para iniciar o gerenciador de janelas preferido, como descrito no artigo do xinitrc.

A maioria dos usuários que desejam inicializar um servidor X durante o boot instalam um Display Manager em vez disso.

Ao utilizar o método #~/.bash_profile, o X será inicializado uma vez que logado em um tty (terminal). A forma #/etc/inittab, permite iniciar o X automaticamente sem fornecer uma senha.

~/.bash_profile

Note: Este método pode ser combinado com automatic login to virtual console e age similarmente ao método do inittab, mas irá registrar corretamente sua sessão e funcionará com o Consolekit.

Uma alternativa para um gerenciador de login é adicionar o seguinte no final do seu ~/.bash_profile, (se ~/.bash_profile não existir ainda, você pode copiar um modelo de /etc/skel/.bash_profile):

~/.bash_profile
if [[ -z $DISPLAY && $(tty) = /dev/tty1 ]]; then
  exec startx
  # Could use xinit instead of startx
  #exec xinit -- /usr/bin/X -nolisten tcp
fi

ou com verificação adicional:

~/.bash_profile
if [[ -z $DISPLAY && ! -a /tmp/.X11-unix/X0 && $(id -u) != 0 ]]; then
  exec startx
fi

O usuário sera deslogado quando o X for morto, finalizado. Para evitar isso, remova a parte do exec do script.

/etc/inittab

Warning: Este não método não utilizará o /bin/login ou registrará sua sessão, portanto nenhuma sessão aparecerá em `who` or `w`. Sua sessão também não será autorizada como 'local' pelo consolekit, então você não poderá desligar/suspender/reiniciar ou montar dispositivos sem utilizar o sudo ou su

Outra maneira de contornar os gerenciadores de tela e iniciar direto em gerenciador de janelas preferido ou ambiente de trabalho envolve a edição do /etc/inittab, mudando:

id:3:initdefault:

[...]

x:5:respawn:/usr/bin/xdm -nodaemon

para:

id:5:initdefault:

[...]

x:5:once:/bin/su - -- USUÁRIO_PREFERIDO -l -c '/usr/bin/startx </dev/null'

A opção - invoca o "shell de login" acrescentando um traço (-) ao seu nome. Porque um comando é executado com a opção -c, o shell também roda em um "modo não-interativo". Bash não faz o processo normal de login no modo de login não-interativo, a menos que serja forçado com a opção -l. A opção -- garante que as opções -l e -c sejam passadas para o shell ao invés de ser usado pelo próprio su. Essas soluções são necessárias para a combinação entre Gnu su e o Bash; veja "su 5.2.1 does not invoke bash as a login shell".

O campo preenchido com once pode ser alterado para respawn a fim de reiniciar o X continuadamente se ele existir.

Adicionalmente, startx pode ser alterado por qualquer outro comando ou script desejado. Por exemplo:

startx -- -nolisten tcp -br -deferglyphs 16

Também você podefazer isso para múltiplos usuários usando diferentes níveis de execução,

x1:4:once:/bin/su - -- USUÁRIO_PREFERIDO1 -l -c '/usr/bin/startx </dev/null'
x2:5:once:/bin/su - -- USUÁRIO_PREFERIDO2 -c '/usr/bin/startx </dev/null'

e adicionando novas entradas no menu.list do GRUB

# (0) Arch Linux
title  Arch Linux USER1
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-label/Arch ro 4
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux USER2
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-label/Arch ro 5
initrd /kernel26.img

Nota: Se você tiver problemas em escrever caracteres de terminais não-ASCII nesse novo X, remova a opção -l (confira aqui...)