Puncte:1

Rularea mai multor sesiuni VNC simultane

drapel hm

Lucrez la un proiect pentru un client care dorește să acceseze unele aplicații Windows prin site-ul meu folosind noVNC, care mi-a dat o idee pentru a configura un server cu mai mulți utilizatori. Am instalat TigerVNC-server pe VPS-ul meu CentOS 7, care funcționează bine când un utilizator este conectat, dar când al doilea utilizator se conectează, el/ea va primi doar un ecran negru, deoarece se pare că gnome nu va porni pentru al doilea. utilizator.

Dacă eu, de exemplu, rulez vncservice@:1 totul funcționează bine și utilizatorul va fi autentificat fără nicio problemă, dar când vncservice@:2 pornește, nu va porni gnome și el/ea va primi un ecran negru cu doar un cursor. Când vncservice@:2 începe primul, acel utilizator va fi lansat în gnome dar vncservice@:1 nu le va vedea desktopul etc. etc.

Iată cum arată configurația mea:

[Utilizatorul 1 și 2 ~/.vnc/xstartup]
#!/bin/sh

dezactivați SESSION_MANAGER
dezactivați DBUS_SESSION_BUS_ADDRESS
/etc/X11/xinit/xinitrc
# Să presupunem că fie Gnome, fie KDE vor fi pornite implicit când sunt instalate
# Dorim să oprim sesiunea automat în acest caz când utilizatorul se deconectează. În cazul în care modificați
# /etc/X11/xinit/Xclients sau ~/.Xclients pentru a obține un rezultat diferit, atunci ar trebui să
# fii responsabil să modifici codul de mai jos pentru a evita ca sesiunea ta să fie oprită automat

dormi 60

if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; atunci
    vncserver -kill $DISPLAY
    killall -u $USER
fi

[/etc/X11/xinit/xinitrc]

#!/bin/sh

# Obligatoriu sursă xinitrc-common, care este cod comun partajat între
# Scripturile Xsession și xinitrc care au fost luate în considerare pentru a evita duplicarea
. /etc/X11/xinit/xinitrc-common

# Utilizatorul poate avea propriii clienți pe care doresc să-i ruleze. Dacă nu,
# reveniți la valorile implicite ale sistemului.
if [ -f $HOME/.Xclients ]; atunci
    exec $CK_XINIT_SESSION $SSH_AGENT $HOME/.Xclients || \
    exec $CK_XINIT_SESSION $SSH_AGENT $HOME/.Xclients
elif [ -f /etc/X11/xinit/Xclients ]; atunci
    exec $CK_XINIT_SESSION $SSH_AGENT /etc/X11/xinit/Xclients || \
    exec $CK_XINIT_SESSION $SSH_AGENT /etc/X11/xinit/Xclients
altfel
    # Setări de siguranță. Deși nu ar trebui să ajungem niciodată aici
    # (oferim alternative și în Xclients) nu poate strica.
    [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'
    [ -x /usr/bin/xclock ] && /usr/bin/xclock -geometry 100x100-5+5 &
    [ -x /usr/bin/xterm ] && xterm -geometry 80x50-50+150 &
    [ -x /usr/bin/twm ] && /usr/bin/twm
fi

[vncserver@:1 și vncserver@:2, este înlocuit cu numele de utilizator actual]

[Unitate]
Descriere=Serviciu desktop la distanță (VNC)
După=syslog.target network.target

[Serviciu]
Tip = bifurcare
Utilizator=<USERNAME>
Group=<USERNAME>

ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i
PIDFile=/home/<USERNAME>/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i


[Instalare]
WantedBy=multi-user.target

[Al doilea jurnal VNC utilizator]

[root@.... ~]# systemctl status vncserver@:5
â vncserver@:5.service - Serviciu desktop la distanță (VNC)
   Încărcat: încărcat (/etc/systemd/system/vncserver@:5.service; dezactivat; prestabilit furnizor: dezactivat)
   Activ: activ (în alergare) din 2021-07-24 19:04:54 CEST; acum 59 de ani
  Proces: 25990 ExecStart=/usr/bin/vncserver %i (cod=exit, status=0/SUCCESS)
  Proces: 25981 ExecStartPre=/usr/bin/vncserver -kill %i (cod=ieșit, stare=2)
 PID principal: 25997 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:5.service
           ââ25997 /usr/bin/Xvnc :5 -auth /home/AHtYezzDXegQScyu/.Xauthority -desktop <HOSTNAME>:5 (AHtYezzDXegQScyu) -fp catalog:/etc/X11/fontpath.d -geometry.d -geometry pn -rfbauth /home/AHtYezzDXegQScyu/.vnc/passwd -rfbport 5905 -rfbwait 30000
           ââ26006 /bin/sh /home/AHtYezzDXegQScyu/.vnc/xstartup
           ââ26018 dbus-launch --sh-syntax --exit-with-session
           ââ26019 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
           ââ26053 /usr/libexec/imsettings-daemon
           ââ26057 /usr/libexec/gvfsd
           ââ26062 /usr/libexec/gvfsd-fuse /home/AHtYezzDXegQScyu/.gvfs -f -o big_writes
           ââ26126 /usr/libexec/at-spi-bus-launcher
           ââ26131 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
           ââ26135 /usr/libexec/at-spi2-registryd --use-gnome-session
           ââ26158 /usr/bin/gnome-keyring-daemon --start --components=ssh
           ââ26241 /usr/libexec/xdg-permission-store
           ââ26246 /usr/libexec/gnome-shell-calendar-server
           ââ26251 /usr/libexec/evolution-source-registry
           ââ26258 /usr/libexec/goa-daemon
           ââ26269 /usr/libexec/goa-identity-service
           ââ26275 /usr/libexec/mission-control-5
           ââ26286 /usr/libexec/gvfs-udisks2-volume-monitor
           ââ26293 /usr/libexec/gvfs-mtp-volume-monitor
           ââ26299 /usr/libexec/gvfs-goa-volume-monitor
           ââ26305 /usr/libexec/gvfs-gphoto2-volume-monitor
           ââ26310 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
           ââ26311 /usr/libexec/gvfs-afc-volume-monitor
           ââ26411 /usr/libexec/gsd-print-notifications
           ââ26413 /usr/libexec/gsd-rfkill
           ââ26418 /usr/libexec/gsd-screensaver-proxy
           ââ26454 somn 60
           ââ26458 /usr/libexec/evolution-calendar-factory

24 iul 19:05:22 <HOSTNAME> gnome-session-binary[26007]: AVERTISMENT: A eșuat la pornirea aplicației: Imposibil de pornit aplicația: A eșuat la fork (Resursa indisponibilă temporar)
24 iul 19:05:22 <HOSTNAME> gsd-print-notif[26411]: Nu s-a putut executa handler-ul system-config-printer-udev: Nu s-a putut bifurca (Resursa indisponibilă temporar)
24 iul 19:05:22 <HOSTNAME> gnome-session-binary[26007]: AVERTISMENT: Aplicația „org.gnome.SettingsDaemon.Power.desktop” a fost oprită de semnalul 5
24 iul 19:05:22 <HOSTNAME> gnome-session[26007]: gnome-session-binary[26007]: AVERTISMENT: Aplicația „org.gnome.SettingsDaemon.Power.desktop” a fost oprită de semnalul 5
24 iul 19:05:22 <HOSTNAME> gnome-session-binary[26007]: GLib-WARNING: GError setat peste o GError anterioară sau memorie neinițializată.
                                                                       Aceasta indică o eroare în codul cuiva. Trebuie să vă asigurați că o eroare este NULL înainte de a fi setată.
                                                                       Mesajul de eroare de suprascriere a fost: Imposibil de pornit aplicația: Nu s-a putut bifurca (Resursa indisponibilă temporar)...
24 iul 19:05:22 <HOSTNAME> gnome-session[26007]: gnome-session-binary[26007]: GLib-WARNING: GError setată peste o GError anterioară sau memorie neinițializată.
24 iul 19:05:22 <HOSTNAME> gnome-session[26007]: Aceasta indică o eroare în codul cuiva. Trebuie să vă asigurați că o eroare este NULL înainte de a fi setată.
24 iul 19:05:22 <HOSTNAME> gnome-session[26007]: Mesajul de eroare de suprascriere a fost: Imposibil de pornit aplicația: Nu s-a putut bifurca (Resursa indisponibilă temporar)
24 iul 19:05:22 <HOSTNAME> evolution-calen[26465]: se creează firul „gdbus”: Eroare la crearea firului: resursa indisponibilă temporar
24 iul 19:05:47 <HOSTNAME> gnome-shell-cal[26246]: Nu s-a putut încărca sursa „birthdays”: a fost atins termenul de expirare

[/etc/X11/xinit/Xclients]

#!/bin/bash

GSESSION="$(type -p gnome-session)"
STARTKDE="$(tip -p startkde)"

# verificați dacă utilizatorul are un desktop preferat
PREFERAT=
dacă [ -f /etc/sysconfig/desktop ]; atunci
    . /etc/sysconfig/desktop
    if [ "$DESKTOP" = "GNOME" ]; atunci
        PREFERRED="$GSESSION"
    elif [ "$DESKTOP" = "KDE" ]; atunci
        PREFERRED="$STARTKDE"
    fi
fi

dacă [ -n „$PREFERRED” ]; atunci
    exec „$PREFERRED”
fi

# acum, dacă putem ajunge aici, fie nu a fost prezent niciun fișier de pe desktop,
# sau desktopul solicitat nu este instalat.

if [ -n "$GSESSION" -a -f /usr/share/xsessions/gnome.desktop ]; atunci
    # în mod implicit, rulăm GNOME.
    exec "$GSESSION" --session=gnome
elif [ -n "$STARTKDE" ]; atunci
    # dacă GNOME nu este instalat, încercați KDE.
    exec „$STARTKDE”
fi

# Ar trebui să acceptăm și scripturile /etc/X11/xinit/Xclients.d
XCLIENTS_D=/etc/X11/xinit/Xclients.d
if [ "$#" -eq 1 ] && [ -x "$XCLIENTS_D/Xclients.$1.sh" ]; atunci
    exec -l $SHELL -c „$SSH_AGENT $XCLIENTS_D/Xclients.$1.sh”
fi

# Failsafe.

# aceste fișiere sunt lăsate de TheNextLevel.
rm -f $HOME/Xrootenv.0

# Argh! Nu este instalat nimic bun. Reveniți la twm
{
    # Doamne, nici fvwm95, nici fvwm2 nu sunt disponibile;
    # reveniți la setările de siguranță
    [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'

    if [ -x /usr/bin/xclock ] ; atunci
        /usr/bin/xclock -geometry 100x100-5+5 &
    fi
    if [ -x /usr/bin/xterm ] ; atunci
        /usr/bin/xterm -geometry 80x50-50+150 &
    fi
    dacă [ -x /usr/bin/firefox -a -f /usr/share/doc/HTML/index.html ]; atunci
        /usr/bin/firefox /usr/share/doc/HTML/index.html &
    fi
    if [ -x /usr/bin/twm ] ; atunci
        exec /usr/bin/twm
    fi
}

Prostia este că după ce ai încercat să pornești al doilea vncserver de aproximativ 50 de ori, de obicei funcționează o singură dată, când mă opresc și pornesc din nou serviciul, nu va mai afișa nimic, cu excepția unui cursor de mouse.

A mai rămas o mulțime de memorie liberă (aproximativ 5 giga), mai există și mult spațiu de stocare (aproximativ 100 de giga). Când îmi editez ~/.vnc/xstartup fișier pentru a include doar un manager de fișiere, funcționează bine de fiecare dată, încercarea de a rula o sesiune pentru mai mulți utilizatori pare să fie problema.

Mulțumesc pentru că ai citit toate acestea, am pierdut deja nenumărate ore încercând să depanez acest lucru fără îmbunătățiri (mare).

ACTUALIZARE 1: După multe ore de încălcare, încă nu am apucat să lucrez cu gnom. Vremurile disperate necesită măsuri disperate, așa că tocmai am ajuns să instalez Xfce și l-am făcut mai frumos cu o temă drăguță și un pachet de pictograme. A funcționat doar după ce l-am instalat. Am eliminat toate referințele gnome din xstartup fișiere și adăugate startxfce4.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.