Belépés linuxba két grafikus ablakban különböző felhasználóként párhuzamosan

Fórumok

Sziasztok!

Azt szeretném megoldani, hogy mondjuk Alt Ctrl F7-nél user1-ként legyek belépve és használhassak mondjuk négy munkaterületet, Alt Ctrl F8-nál pedig user2-ként.

Elnézést hogyha a probléma megoldása triviális, de az általam kitalált keresésekre nem erre jött megoldás. De lehet hogy csak nem voltam elég találékony.
 

Előre is köszönöm a javaslatokat.

Hozzászólások

Szerkesztve: 2022. 01. 11., k – 17:42

belépsz user1-ként

megnyitod az ablakokat

lefuttatod ezt:

# qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter

belépsz user2-ként

elindítod, amit szeretnél

ide-oda váltogatsz a két session között ctrl-alt-F7 és F8-al

ha van valami speckó device, akkor kellhet a 

# loginctl flush-devices

A display manager jelen esetben annyit csinál, hogy elindít egy második Xorg példányt. A kérdésem arra vonatkozott, hogy hogyan képes az Xorg ugyanazon videokártyán két példányban futni. Ilyen hagyományos (fizikai) videokártyával nem volt lehetséges. Ha az Xorg a modesetting drivert használja, akkor valójában a kernel által biztosított API-t használja, így valószínűleg az teszi lehetővé azt, hogy ketten használják egyszerre.

nem értek hozzá részleteiben, de nemcsak a videó, hanem a hangkártya és egyéb eszköz is átadásra kerül a következő paranccsal tudtommal, legalábbis részemről így erőltettem át az egyik felhasználótól a másikhoz az eszközöket, amiket user process használt (sudo-val)

# loginctl flush-devices

 s ez szerintem systemd szinten zajlik, az Xorg csak "átveszi" az eszközöket, lásd:

# loginctl seat-status seat0

Most hogy olvasom a topicot, eszembe jutott, hogy régen, systemd előtti init-es disztrón is létezett valamilyen parancs, amitől 2 ablakban is futhatott az Xorg. A parancsban biztos hogy benne volt a   :1  , konkrétan az egészre már nem emlékszem. És az is lehet hogy csak 1 user léphetett be 2 -vagy több? - grafikus ablakba.

Úgy emlékszem, csak el kellett indítani az X-et másodszor is. A paraméterezésre nem emlékszem már, de valami egyszerű volt, mint pl. X --vt=8 :1

És persze a klienseknek meg lehetett adni, hogy melyik szerverhez kapcsolódjanak.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

meglévő belépett user1-ként futtatod az előbbi példában

ha szeretnéd ellenőrizni, hogy milyen "session / seat"-ek futnak, akkor az alábbi parancs segít:

# dm-tool list-seats

ha a ctrl-alt-f8-at szeretnéd parancsból futtatni:

# chvt 8

mindezekből lehet scriptesíteni mindenféle esetet és automatizálni elképzeléseid szerint

a dm-tool-al is lehet váltogatni:

# dm-tool switch-to-user USERNAME [SESSION]

Ha mondjuk két példányban, akkor az egyik az Alt Cnrl F7-en, a másik az Alt Cnrl F8-on látszik külön grafikus login ablakkal?

Az hogy két X szerver (kliens?) fut, az egy letisztázott téma a linuxban szerinted, vagy lehet hogy összevesznek bizonyos dolgokon?

Igen.

Az egyetlen érdemi dolog, amin összeveszhetnének, az a videokártya. Ha azt a kernel modesetting driver megoldja, akkor mással nem nagyon lesz baj. Az egyes input eszközök régóta használhatóak több processz által.

(Én a '90-es évek végén sokat futtattam egymás mellett több XFree86 példányt, több videokártyával. Semmi gond nem volt vele, igaz, akkor még statikusan kellett legyártani hozzá minden konfigfájlt - ami elsőre macerásnak tűnhet, de valójában legalább meglepetésmentes volt.)

Úgy érted, hogy elindítod az X-et, aztán user 1 elindít egy xtermet, user 2 meg egy másik xtermet?

Ehhez annyi kell, hogy user2-vel belépve be kell állítani a DISPLAY változót az X kliens alkalmazás indítása előtt.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Az Angtól és Mauzi-tól kapott megoldás tökéletesen működik és tökéletesen megfelel nekem.

De legjobban olyannak örültem volna, hogy ha elindítom a gépet, akkor mondjuk Alt Cntr F7-től F12-ig lépkedek, és mindegyiknél grafikus login ablak, és akár mind a hatba beléphetek külön usernévvel, és lépkedhetek közöttük tetszőlegesen Alt Cntr-lal.

Vagyis azt hiszem szakszerűbben F7-től F12-ig fut hat darab X kliens, de lehet hogy már a grafikus login ablak is feleslegesen nagy terhelést okozna ha nem használom akkor is.

Nem tudom, hogy az általam elképzelt konfigurációhoz, vagyishogy Alt Ctrl F7-től F12-ig be lehessen jelentkezni külön-külön más usernévvel grafikus felületen, amögött minek kellene lennie. Az én homályos elképzeléseim szerint ez csupán 6 db X kliens, de ez lehet hogy nem lehetséges, hanem csak úgy, ha 6 db X szerver is fut. Tehát nem tudom, mi kellene az eredeti elképzelésem megvalósításához.

De ez mostmár csak elméleti kérdés, mert ami működik, nekem az is megfelel.

A "Linux" eléggé tág fogalom, manapság még az sem biztos, hogy Xorg vagy Wayland biztosítja a grafikus felületet.

Waylandet nem ismerem, Xorg esetén ott kezdődik a probléma, hogy az X szerver alapesetben exkluzívan használja a videokártyát és a framebuffert, így ilyen megoldást leginkább két külön videokártyával lehet megjátszani. Ha egyetlen videokártyával szeretnéd mindezt, akkor itt találsz további infókat: https://wiki.archlinux.org/title/Xorg_multiseat

Ha van két videokártya, akkor tulajdonképpen "semmi különös", azaz kell mindkét videokártyához (és a szükséges input eszközökhöz) egy megfelelő Xorg konfig, és parallel el kell indítani mindkét X szervert a :0 és :1 megjelenítőkön. Ez utóbbira valószínűleg bármelyik display manager képes. (az xdm és lightdm biztosan)

Ennél talán egy fokkal jobb megoldás, ha egyetlen X szerver fut, és Xnest-ben elindítasz több felhasználói session-t. (Bár, nem tudom, hogy a mai 2D/3D/video gyorsítós világban mennyire jó gyakorlatban Xnest-ben létezni.

Bocs! Igaz!:

Debian 11.2.0. Lenovo T400-on. Core2Duo, 8G 1333MHz memóriával.

Én ezt a két grafikus felület fut egyszerre, meg két felhasználó témát nem erőltetném egy ilyen régi gépen, azért kicsit sovány speckók ezek ma már. Még elmegy, de azzal elégedj meg, ha egy felhasználó egy felülete még használhatóan fut rajta, meg a böngészés még elmegy. Egyébként meg javaslom, hogy tanuld meg a terminált, shellt használni, akkor akármilyen sovány gépen pár terminálablakban, tmux-ban, akármiben futhat akárhány felhasználó CLI/TUI programja, pl. nnn, ranger, Vifm, mc, (neo)vim, emacs, micro, transmission-cli, pulsemixer, (neo)mutt, *top, calcurse, stb. A böngészésen, játékokon, emulátorokon, grafikus szerkesztőprogramokon (GIMP, Krita, Darktable, CAD-programok, videóvágók) kívül kb. minden más megoldható terminálban. Még másik virtuális gép is megoldható.

Egyébként egyes WM-eken szerintem lehet olyat is, hogy ha pkexec-kel másik user nevében futtatod az adott programot, amit előre felveszel a WM konfigjába, akkor azt egy külön virtuális asztalon nyitja meg, amin a háttérkép is más, bár ezt sem a legegyszerűbb összehozni.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Kösz, de tökéletesen működik. Még Microsoft Teams is fut döccenő nélkül videokonferenciával is. A másik usernél is minden rendben párhuzamosan több megnyitott böngészővel és akár HD film nézésével. Mindent egyszerre elindítani és mondjuk két Teams-et futtatni azt nem próbáltam, de amire nekem kell arra tökéletes.

Épp ezért írtam, hogy mehet, ezt neked kell tudni, hogy milyen futási teljesítménnyel elégedsz meg. Sokan elfelejtik, hogy hiába ennyi giga RAM, eleve levesz belőle az integrált GPU, meg a kernel cache-élse (ezt el tudja dobni a kernel igény esetén, de akkor meg az I/O műveletek lassulhatnak), stb. Azért mégis csak egy közel 14 éves gép, és hiába bővítetted fel extra RAM-mal, meg SSD-vel, meg preferálják mai napig az oldschool képernyőarány, régimódi billentyűzete, ME CPU engine hiánya, corebootolhatóság, régebbi portok jelenléte miatt, azért ennyi idő alatt megette az egészet az idő vasfoga, mégis csak 2 mag, 2 szál, nem a legjobb IPC, ha nem nagy nagyobbik, 4-6 MB cache-es, 2-3 GHz-es C2Durci variánst futtatod, akkor a cache sem acélos, utasításkészletek sincsenek meg mind. Amivel mindig nincs baj, mert soványabb linuxozásra simán jó, Debian/Arch valami kisebb DE vagy kisebb WM használatával, főleg terminálos workflow, ezen azt értem, hogy nem Snapuntu meg Bloatredhatdórikadrága Gnome, Unity, Cinmanó, KDE történekkel, amik alsó hangon bekajálnak 1 giga RAM-ot (webextensionökkel és memory leak-kel meg a csillagos ég a határ), erre jön még rá a Chrome-alapú böngészők (főleg ha sok tab, sok JS-es szutyok fut) és az Electron-alapú szutykok nem kicsi (1 giga per task) étvágya, azok azért gyorsan leeszik a régi hardvert, néha még a tiédtől újabb (de még mindig régebbi), Core i5, i7-es procijú, 16 giga RAM-os gépek is le tudnak térdelni. Mindezzel nem azt mondom, hogy tilos úgy használni, ahogy akarod, csak tisztában kell lenni, hogy egy régi hardvert olyan messzi területekre tolsz ki így, amire alapvetően nem tervezték akkor sem, amikor még nem járt el felette az idő, meg mikor még a szoftverek csak fele ennyire voltak bloatosítva. Ennek ellenére, mint mondtam, simán mehet, meg meg lehet oldani egyszerűbben is, hogy nem két külön DE/WM fut, hanem csak egy felület, egy ablak, de másik felhasználó dolgai egy új munkaasztalon futnak, annak a nevében, de még úgy is necces lehet néha, ezzel nem árt tisztában lenni.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)