Re: XDM Logon einrichten

From: Joerg Wunsch <j(at)uriah.heep.sax.de>
Date: Tue, 18 Jun 2002 12:12:30 +0200

As Oliver Fromme wrote:

> ttyvb "/usr/X11R6/bin/xdm -nodaemon" xterm off insecure
>
> (Statt »ttyvb« muß da natürlich ein freies VTY stehen. Ich
> tu's üblicherweise auf das zwölfte, daher ttyvb.)

Das Ganze ist nur ein böser Hack, der einem ganz schnell auf die Füße
fallen kann. Insbesondere ist die Angabe des VTYs ganz vorn praktisch
nur ein Kommentar (anders, als wenn man damit wirklich einen getty
startet). In Wirklichkeit sucht sich der X-Server nur das erste freie
VTY. Ich bezeichne das immer als einen ,,gewichteten Zufall'', daß
das funktioniert, da in der Regel halt die leichtgewichtigen gettys
sehr viel schneller starten als der xdm einen schwergewichtigen
Xserver hochgezogen hat.

Das alles hat noch einen zweiten Nachteil: die Raten-Limitierung für
zu häufige Neustarts im init(8) funktioniert praktisch nicht, da der
Xserver dafür zu langsam startet. Hat man also eine kaputte
Xserver-Konfiguration, dann zieht init immer wieder einen xdm hoch und
dieser einen Xserver, der dann crasht. Danach zieht init wieder
einen... usw. usf. Da sich jeder Xserver als erstes sein VTY krallt,
wird auch so schnell umgeschaltet, daß man sich nicht in der
Zwischenzeit auf einem anderen VTY einloggen kann.

> > > Alternativ kann man sich auch ein kleines Start- und Stop-
> > > Skript für xdm schreiben, das man unter /usr/local/etc/rc.d
> > > ablegt.

Das halte ich in jedem Falle für die bessere Alternative. In diesem
Falle wird die Restart-Limitierung vom xdm übernommen (der ja als
Dämon die ganze Zeit läuft), und im Falle einer kaputten Konfiguration
klemmt er einen nicht funktionierenden Server nach dem dritten Versuch
ab. Damit hat man dann in Ruhe Zeit, die Konfiguration auf einer
Textconsole zu reparieren. Danach kill -HUP `cat /var/run/xdm.pid`,
und es kann neu losgehen.

> (sleep 1; /usr/X11R6/bin/xdm) &

Uah. S. u.

> echo -n ' xdm'
> ;;
> stop)
> PIDS=`ps -auxww | awk '/x[d]m/&&!/xdm\.sh/{print $2}'`

Uaaah. Warum kein PID-File? Es genügt doch, den Master zu killen.

> Das »sleep 1« ist ein kleiner Hack, ...

s/klein/groß/

Hätte ich von Dir nicht erwartet, Olli.

Die korrekte Vorgehensweise ist, daß man im "Xservers"-File des xdm
(/usr/X11R6/lib/X11/xdm/Xservers oder auch /etc/X11/xdm/Xservers,
hängt von der Version ab) die Zeile, die den Server startet, um "vtXX"
ergänzt, um den Server auf einem ganz bestimmten VTY zu starten. Das
ist die einzige Variante, bei der ein Erfolg garantiert ist. Achtung,
die vtXX-Zählung ist 1-basiert, weil das so von einem alten SystemV
übernommen worden ist. ttyv0 korrespondiert also mit vt01 usw.

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 18 Jun 2002 - 12:20:06 CEST

search this site