내 목표는 한 tty에서는 XBMC를 실행하고 다른 tty에서는 미니멀리스트 데스크톱(주로 웹 브라우징용)을 실행하는 Arch 기반 HTPC입니다.
아직 XBMC 사용을 시작하지 않았지만 현재 다음을 통해 데스크톱 사용자 계정에 자동으로 로그인됩니다.
c1:2345:respawn:/sbin/agetty -a USERNAME -8 -s 38400 tty1 linux
그런 다음 ~/.bash_profile을 통해 를 실행 startx
합니다 startxfce4
. 다른 tty로 전환한 다음 다시 tty1로 전환하기 전까지는 괜찮습니다. 다시 전환한 후 ~/.bash_profile을 다시 실행한 다음 xsession이 이미 실행 중이기 때문에 짜증을 냅니다.
내 질문은 다음과 같습니다
이것이 데스크탑 및 XBMC 구성을 구현하는 현명한 방법입니까? 이것은 나와 최종 사용자(특히 Linux 전문가는 아님)에게 생각할 수 있는 가장 쉬운 것입니다.
tty1에서 실행 중인 XFCE 세션이 올바르게 실행되고 있는지 확인하고 있는 경우 해당 세션으로 전환하거나 그렇지 않은 경우 새 세션을 실행하는 방법이 있습니까?
아니면 콘솔로 전환할 때마다 호출되지 않도록 로그인 시 XFCE 자동 시작을 수행하는 더 좋은 방법이 있습니까?
(이러한 질문에 직접적으로 답하지 않는 더 나은 구현도 유용할 것입니다. 제 목표는 가볍고 단순해지는 것입니다.)
답변1
당신이 무엇을 하려는지 잘 모르겠습니다.
로그인을 위해 그래픽 환경을 자동으로 시작하려면 텍스트 세션을 시작하지 말고 그래픽으로 직접 로그인하십시오.X 디스플레이 관리자. 예를 들어 다음을 사용할 수 있습니다.광DM, Arch 위키에는 필요한 모든 정보가 있습니다.
다음과 같은 줄이 있는지 확인하십시오
/etc/inittab
.x:2345:respawn:/usr/sbin/lightdm >& /dev/null
자동 로그인 활성화
/etc/lightdm/lightdm.conf
:[SeatDefaults] autologin-user=styne666 autologin-user-timeout=0 pam-service=lightdm-autologin
아직 GUI 없이 GUI를 시작하려는 경우 다음 방법을 사용하여 텍스트 콘솔에 로그인되어 있고 X 서버가 아직 실행되고 있지 않은지 확인할 수 있습니다. 완벽하지는 않습니다("X 서버가 실행되고 있지 않지만 X 서버를 시작하는 것이 합리적입니다"는 정확한 요구 사항이 아니기 때문에 원하는 작업을 수행하지 못하는 일부 경우가 항상 있습니다). 충분하다. 이것을 당신의 .bash_profile
.
case $(tty) in
/dev/tty[0-9]) # running on a text console
if [ -z "$(ps -o pid= -C Xorg)" ]; then # if there no X running?
x=yes
trap 'x=; echo >&2 Will not start x.' INT
echo >&2 'Starting X (press Ctrl+C *now* not to)...'
sleep 2
if [ -n "$x" ]; then # the user didn't press Ctrl+C
exec startxfce4
fi
fi;;
esac