Problema do script de inicialização do aplicativo RCNG personalizado X

2

Eu estou tentando construir uma caixa de mídia baseada no FreeBSD + XBMC. Tudo está funcionando bem, exceto por um ponto.

Eu preciso inicializar o XBMC como um script de inicialização RCNG, tudo bem, exceto:

Se o comando para iniciar X e XBMC for executado em primeiro plano, tudo funcionará bem. Se ele for colocado em segundo plano (com &) ele começa a funcionar, então é kickado (acho) por getty começando.

Existe alguma maneira de impedir o getty de matar X, ou eu estou latindo completamente na árvore errada?

script rcng:

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: xbmc
# REQUIRE: sshd
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable xbmc:
#
# xbmc_enable="YES"
#
# You will also need to fill in the xbmc_flags="" variable to suit your configuration.
#

xbmc_enable=${xbmc_enable:-"NO"}
xbmc_flags=${xbmc_flags:-""}

. /etc/rc.subr

name=xbmc
rcvar='set_rcvar'
#required_files="/usr/local/etc/xbmc.conf"

xbmc_start() {
        PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
        HOME=/root
        /usr/local/bin/xinit /usr/local/bin/xbmc       # adding & makes it all fail
}

start_cmd=xbmc_start

#command=/usr/local/bin/xbmcboot

load_rc_config $name
run_rc_command "$1"

Mais uma observação - quando ela é expulsa, a tela é aparafusada. Ele me mostra o primeiro bit das mensagens de inicialização do X.Org e isso é tudo. Sem login, sem controle sobre ele, sem capacidade de iniciar o X novamente, mesmo remotamente.

Eu já desliguei o ttyv2 e para cima no / etc / ttys - ele parou a tela de travar quando ele expulsa o Xorg (me dá um prompt normal de getty), mas ainda assim ele chuta para fora. Então é deffinately getty / init relacionado.

Ok, estou 100% convencido de que o getty está sendo iniciado. Se eu colocar os comandos para iniciar a sessão x em um script com um sleep 5 , a sessão X não será iniciada até que o getty comece a ser executado, tudo funciona bem.

Embora eu possa viver com isso por enquanto, seria bom entender por que ele se comporta assim e talvez fazer com que ele seja mais amigável.

    
por Majenko 28.02.2011 / 12:55

1 resposta

1

  • Acho que falta uma linha REQUIRE para que seja iniciada no ponto certo. Eu tentaria algo como
 # REQUIRE: LOGIN syscons
  • Em seu / etc / ttys você configurou algo como xdm / gdm / kdm? Você pode até tentar iniciar seu programa em / etc / ttys
por 11.10.2011 / 18:32