A következő problémával kapcsolatban keresek segítséget.
Szeretnék egy Linux szervert összeállítani ami távoli asztal szolgáltatást nyújt 3 vékonykliensnek. A klienseken Ubuntu fut. Fontos, hogy a kliensek leszakadása esetén a szerveren megmaradjanak az elinditottt programok, illetve, hogy mind a 3 kliensnek saját különálló környezete legyen. A szerver a pincében, zárt helyiségben monitor nélkül fut, ezért azt szeretném, hogy csak a hálózat felé legyen az X -nek display -e.
A dolog ott tart, hogy felkerült a vasra az egy Ubuntu 10.04 LTS szerver, a Gnome, a KDE a FluxBOX. Mindezt Xvnc -n keresztül próbálnám elérni mérsékelten sikeresen.
Az Xvnc -t xinetd -vel inditom. A kliens becsatlakozik, elindul az X, de semmi egyéb. Szürke "rácsos háttér" X alaku kurzorral. Sajnos az Xvnc nem hajtja végre a ~/.vnc-xstartup szkriptet. Ha az Xvnc helyett az inetd az xvnc4server -t inditja, még idáig sem jut el a dolog. Pár percet vergődik a kliens, a szerveren az Xvnc elindul majd leáll pár tucatszor, de a kliens felé a display sosem jelenik meg, és idővel timeout -ba torkollik a dolog. Írtam egy saját pár soros szkriptet ami meghívja az Xvnc -t, majd végrehajtja a xstartup -ot. Itt az volt a probléma, hogy ha az Xvnc -t háttérben indítom '&' a parancs után, akkor nem tud kommunikálni az inetd -vel. Ha nem így indítom, akkor az xstartup már nem hajtódik végre. A probléma áthidalásaként elsőként egy második bash -t indítok. Ez először várakozik, majd meghívja az xstartup -ot. A várakozás azért kell, hogy legyen display, mire a gnome használni szeretné. Evvel a megoldással a VNC kliens sikeresen csatlakozik, és a gnome is szépen bejön. A baj az, hogy a gnome root -ként indul el, hiába van megadva más user az inetd -nek. Ráadásul, ha kilépek a gnome -ból (logout), többet nem indul újra. Ha újra csatlakozik a kliens, a VNC elindul (display van), de a gnome már nem. Ilyenkor csak az előző, kijelentkezett (vagy kijelentkező félben lévő) gnome háttere látszik, még egér kurzor sincs. Kijelentkezéskor az Xvnc kilép, azaz nincs a task listában. Gondolom a megoldás az lehetne, ha gnome-session helyett [xkd]dm -et indítanék, és lenne rendes user beléptetés.
Röviden a következő kérdéseim lennének:
- A fent meghatározott követelmények kielégítésére van e az Xvnc -nél jobb ingyenes megoldás?
- Megoldható e valahogy, hogy az inetd sikeresen el tudja indítani az xvnc4server szkriptet?
- Megoldható e valahogy, hogy az Xvnc lefuttasson egy starup szkriptet indulás után?
- Megoldható e, hogy az inetd által elindított szkript rendes user environmenttel fusson? (Azaz [xkg]dm nélkül megtörténjen a rendes user beléptetés.)
- Miért "fagy be" a gnome logout?
- Hogyan oldható meg, hogy a gnome logout után újra be lehessen lépni VNC -n?
Minden segítséget előre is köszönök!
Frissítés:
Bsh útmutatása alapján megoldódott a probléma. Miután feltettem az Xdm -et, kis konfigurálgatással sikerült rávenni, hogy beszéljen az Xvnc -vel. Sajnos az Xvnc jelszó kérését is meg kellett hagyjam, mert ha a kliens újracsatlakozik egy korábban indított munkamenethez, másként nincs jelszavas védelem. Hátulütő, hogy új munkamenet indításakor így 2x kell jelszót megadni. Lehet ezt később valamilyen initszkriptes kavarással áthidalom.
Azért virtuális gépen futok meg egy kört majd az LTSP -vel és az XRDP -vel is.
Mindenkinek köszönöm a segítséget!
- 1976 megtekintés
Hozzászólások
LTSP-nek néznék utána, az való ilyesmire.
- A hozzászóláshoz be kell jelentkezni
Köszi, jónak néz ki, bár előre összetettebbnek tűnik mint ami nekem kell (hálózatos boot pl.). Ha a VNC -vel nem boldogulok, akkor kipróbálom majd.
- A hozzászóláshoz be kell jelentkezni
semmi ilyesmire nincs szükség.
/etc/gdm/custom.conf-ba:
[daemon]
DefaultSession=xubuntu
[security]
DisallowTCP=false
[xdmcp]
Enable=true
HonorIndirect=false
DisplaysPerHost=2
(a defaultsession persze lehet más, és a displaysperhost is)
ezután létrehozol annyi xinetd service fájlt, ahány klienst akarsz, pl. négyet, elnevezed őket mondjuk Xvnc-1, Xvnc-2, Xvnc-3, stb. néven.
aztán /etc/xinetd.d/Xvnc-$N-be:
service Xvnc-$N
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
wait = yes
user = root
server = /usr/bin/Xvnc4
server_args = -inetd -query localhost -desktop VNC-DISPLAY-$N -geometry 1152x864 -depth 24 -once -fp /usr/share/fonts/X11/misc -DisconnectClients=0 -NeverShared passwordFile=/root/.vncpasswd
port = 590$N
}
így ha bármelyik bekaksizna, külön újra tudod indítani. persze azt is lehet, hogy egy darab Xvnc service fájlod van, és azon belül definiálod az N darab porton futó vnc-t.
(szerk.: már régen csináltam és emlékszem, 10.04-en kicsit szopás volt, de már nem pontosan tudom, hogy mi (asszem a gdm custom conf), meg lehet, hogy ezen kívül mást is piszkáltam, de arra már nem emlékszem. mindenesetre ha elakadsz, akkor kérdezz, és megnézem hogy van nálam.)
- A hozzászóláshoz be kell jelentkezni
Ezek szerint a /etc/gdm/custom.conf -os mágia hiányozhat. Este ha hazamegyek kipróbálom (innen nincs hozzáférésem a szerverhez). Köszönöm a segítséget!
- A hozzászóláshoz be kell jelentkezni
Olyan bajaid egyébként lehetnek majd, hogy az XVnc néhány X extensiont nem támogat (pl. GLX).
- A hozzászóláshoz be kell jelentkezni
annyit még elfelejtettem beleírni, hogy nem árt, ha minden egyes futó vnc szervernek külön .vncpasswd fájlt generálsz, különben előfordulhat, hogy gizike belépve marad és nem lockolja a képernyőjét, majd bontja a sessiont és elmegy ebédelni, amit sunyi jencike kihasznál és rávnc-zik a sessiönjére ugyanazzal a jelszóval...
- A hozzászóláshoz be kell jelentkezni
Helló.
Én xrdp-vel oldottam meg http://www.xrdp.org/
Tökéletesen működik, stabil, és gyors.
Vékonyklienst meg innen vehetsz ;): www.thin-client-cloud-terminal.eu
<= Powered By Ubuntu & Gentoo Linux =>
'Software is like sex: It's better when it's free!'
By Linus Torvalds
- A hozzászóláshoz be kell jelentkezni