Score:1

เรียกใช้เซสชัน VNC พร้อมกันหลายรายการ

ธง hm

ฉันกำลังทำงานในโครงการสำหรับลูกค้าที่ต้องการเข้าถึงแอพ Windows บางตัวผ่านเว็บไซต์ของฉันโดยใช้ noVNC ซึ่งทำให้ฉันมีความคิดในการตั้งค่าเซิร์ฟเวอร์ที่มีผู้ใช้หลายคน ฉันได้ติดตั้งเซิร์ฟเวอร์ TigerVNC บน CentOS 7 VPS ของฉันแล้ว ซึ่งทำงานได้ดีเมื่อผู้ใช้คนหนึ่งเชื่อมต่อ แต่เมื่อผู้ใช้คนที่สองเชื่อมต่อ เขา/เธอจะได้รับหน้าจอสีดำเท่านั้นเนื่องจากดูเหมือนว่า gnome จะไม่เริ่มทำงานเป็นครั้งที่สอง ผู้ใช้

ถ้าฉันเรียกใช้ไฟล์ vncservice@:1 ทุกอย่างทำงานได้ดีและผู้ใช้จะเข้าสู่ระบบโดยไม่มีปัญหา แต่เมื่อ vncservice@:2 เริ่มต้น มันจะไม่เริ่ม gnome และเขา / เธอจะได้รับหน้าจอสีดำพร้อมเคอร์เซอร์เท่านั้น เมื่อไร vncservice@:2 เริ่มแรก ผู้ใช้คนนั้นจะถูกเปิดเข้าสู่ gnome but vncservice@:1 จะไม่เห็นเดสก์ท็อป ฯลฯ เป็นต้น

นี่คือลักษณะของการตั้งค่าของฉัน:

[ผู้ใช้ 1 และ 2 ~/.vnc/xstartup]
#!/bin/sh

ยกเลิกการตั้งค่า SESSION_MANAGER
ยกเลิกการตั้งค่า DBUS_SESSION_BUS_ADDRESS
/etc/X11/xinit/xinitrc
# สมมติว่า Gnome หรือ KDE จะเริ่มต้นโดยค่าเริ่มต้นเมื่อติดตั้ง
# เราต้องการปิดเซสชันโดยอัตโนมัติในกรณีนี้เมื่อผู้ใช้ออกจากระบบ ในกรณีที่คุณแก้ไข
# /etc/X11/xinit/Xclients หรือ ~/.Xclients ด้วยตัวคุณเองเพื่อให้ได้ผลลัพธ์ที่แตกต่าง คุณควร
# รับผิดชอบในการแก้ไขโค้ดด้านล่างเพื่อหลีกเลี่ยงไม่ให้เซสชันของคุณถูกฆ่าโดยอัตโนมัติ

นอน 60

ถ้า [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; แล้ว
    vncserver - ฆ่า $DISPLAY
    คิลออล -u $USER
ไฟ

[/etc/X11/xinit/xinitrc]

#!/bin/sh

# แหล่งบังคับ xinitrc-common ซึ่งเป็นรหัสทั่วไปที่ใช้ร่วมกันระหว่าง
# สคริปต์ Xsession และ xinitrc ซึ่งได้รับปัจจัยเพื่อหลีกเลี่ยงการทำซ้ำ
. /etc/X11/xinit/xinitrc-common

# ผู้ใช้อาจมีลูกค้าของตนเองที่ต้องการเรียกใช้ ถ้าพวกเขาไม่
# กลับสู่ค่าเริ่มต้นของระบบ
ถ้า [ -f $HOME/.Xclients ]; แล้ว
    ผู้บริหาร $CK_XINIT_SESSION $SSH_AGENT $HOME/.Xclients || \
    ผู้บริหาร $CK_XINIT_SESSION $SSH_AGENT $HOME/.Xclients
elif [ -f /etc/X11/xinit/Xclients ]; แล้ว
    ผู้บริหาร $CK_XINIT_SESSION $SSH_AGENT /etc/X11/xinit/Xclients || \
    ผู้บริหาร $CK_XINIT_SESSION $SSH_AGENT /etc/X11/xinit/Xclients
อื่น
    # การตั้งค่าที่ไม่ปลอดภัย แม้ว่าเราไม่ควรมาที่นี่
    # (เรามีทางเลือกสำรองใน Xclients ด้วย) ไม่มีอะไรเสียหาย
    [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'
    [ -x /usr/bin/xclock ] && /usr/bin/xclock -รูปทรงเรขาคณิต 100x100-5+5 &
    [ -x /usr/bin/xterm ] && xterm -เรขาคณิต 80x50-50+150 &
    [ -x /usr/bin/twm ] && /usr/bin/twm
ไฟ

[vncserver@:1 และ vncserver@:2 ถูกแทนที่ด้วยชื่อผู้ใช้จริง]

[หน่วย]
คำอธิบาย=บริการเดสก์ท็อประยะไกล (VNC)
After=syslog.target network.target

[บริการ]
ประเภท = ส้อม
ผู้ใช้=<USERNAME>
Group=<ชื่อผู้ใช้>

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


[ติดตั้ง]
WantedBy=multi-user.target

[บันทึก VNC ของผู้ใช้คนที่สอง]

[root@.... ~]# systemctl สถานะ vncserver@:5
â vncserver@:5.service - บริการเดสก์ท็อประยะไกล (VNC)
   โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/vncserver@:5.service; ปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
   ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่ za 2021-07-24 19:04:54 CEST; 59s ที่ผ่านมา
  กระบวนการ: 25990 ExecStart=/usr/bin/vncserver %i (รหัส=ออกแล้ว สถานะ=0/สำเร็จ)
  กระบวนการ: 25981 ExecStartPre=/usr/bin/vncserver -kill %i (รหัส=ออก, สถานะ=2)
 PID หลัก: 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 แคตตาล็อก:/etc/X11/fontpath.d -geometry 1024x768 - 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-เซสชัน
           ââ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-การแจ้งเตือน
           ââ26413 /usr/libexec/gsd-rfkill
           ââ26418 /usr/libexec/gsd-screensaver-proxy
           ââ26454 นอน 60
           ââ26458 /usr/libexec/evolution-calendar-โรงงาน

24 กรกฎาคม 19:05:22 <HOSTNAME> gnome-session-binary[26007]: คำเตือน: ไม่สามารถเริ่มแอป: ไม่สามารถเริ่มแอปพลิเคชัน: ไม่สามารถแยก (ทรัพยากรไม่พร้อมใช้งานชั่วคราว)
24 กรกฎาคม 19:05:22 <HOSTNAME> gsd-print-notif[26411]: ไม่สามารถเรียกใช้งานตัวจัดการ system-config-printer-udev: ไม่สามารถแยก (ทรัพยากรไม่พร้อมใช้งานชั่วคราว)
24 กรกฎาคม 19:05:22 <HOSTNAME> gnome-session-binary[26007]: คำเตือน: แอปพลิเคชัน 'org.gnome.SettingsDaemon.Power.desktop' ถูกฆ่าโดยสัญญาณ 5
24 กรกฎาคม 19:05:22 <HOSTNAME> gnome-session[26007]: gnome-session-binary[26007]: คำเตือน: แอปพลิเคชัน 'org.gnome.SettingsDaemon.Power.desktop' ถูกฆ่าโดยสัญญาณ 5
24 ก.ค. 19:05:22 <HOSTNAME> gnome-session-binary[26007]: GLib-WARNING: GError ตั้งค่าไว้เหนือ GError ก่อนหน้าหรือหน่วยความจำที่ไม่ได้เตรียมใช้งาน
                                                                       สิ่งนี้บ่งชี้ว่ามีข้อผิดพลาดในรหัสของใครบางคน คุณต้องแน่ใจว่าข้อผิดพลาดเป็นโมฆะก่อนที่จะตั้งค่า
                                                                       ข้อความแสดงข้อผิดพลาดการเขียนทับคือ: ไม่สามารถเริ่มแอปพลิเคชัน: ล้มเหลวในการแยก (ทรัพยากรไม่พร้อมใช้งานชั่วคราว)...
24 ก.ค. 19:05:22 <HOSTNAME> gnome-session[26007]: gnome-session-binary[26007]: GLib-WARNING: GError ตั้งค่าไว้ด้านบนของ GError ก่อนหน้าหรือหน่วยความจำที่ไม่ได้กำหนดค่าเริ่มต้น
24 ก.ค. 19:05:22 <HOSTNAME> gnome-session[26007]: สิ่งนี้บ่งชี้ว่ามีข้อผิดพลาดในรหัสของใครบางคน คุณต้องแน่ใจว่าข้อผิดพลาดเป็นโมฆะก่อนที่จะตั้งค่า
24 กรกฎาคม 19:05:22 <HOSTNAME> gnome-session[26007]: ข้อความแสดงข้อผิดพลาดการเขียนทับคือ: ไม่สามารถเริ่มแอปพลิเคชัน: ไม่สามารถแยก (ทรัพยากรไม่พร้อมใช้งานชั่วคราว)
24 ก.ค. 19:05:22 <HOSTNAME> Evolution-calen[26465]: กำลังสร้างเธรด 'gdbus': เกิดข้อผิดพลาดในการสร้างเธรด: ทรัพยากรไม่พร้อมใช้งานชั่วคราว
24 กรกฎาคม 19:05:47 <HOSTNAME> gnome-shell-cal[26246]: ไม่สามารถโหลดซอร์ส 'วันเกิด': หมดเวลาแล้ว

[/etc/X11/xinit/Xclients]

#!/bin/bash

GSESSION="$(type -p gnome-เซสชัน)"
STARTKDE="$(ชนิด -p startkde)"

# ตรวจสอบเพื่อดูว่าผู้ใช้มีเดสก์ท็อปที่ต้องการหรือไม่
ที่ต้องการ=
ถ้า [ -f /etc/sysconfig/desktop ]; แล้ว
    . /etc/sysconfig/desktop
    ถ้า [ "$DESKTOP" = "GNOME" ]; แล้ว
        PREFERRED="$GSESSION"
    elif [ "$DESKTOP" = "KDE" ]; แล้ว
        PREFERRED="$STARTKDE"
    ไฟ
ไฟ

ถ้า [ -n "$PREFERRED" ]; แล้ว
    ผู้บริหาร "$PREFERRED"
ไฟ

# ตอนนี้หากเราไปถึงที่นี่ได้ แสดงว่าไม่มีไฟล์เดสก์ท็อปอยู่
# หรือไม่ได้ติดตั้งเดสก์ท็อปที่ร้องขอ

ถ้า [ -n "$GSESSION" -a -f /usr/share/xsessions/gnome.desktop ]; แล้ว
    # โดยค่าเริ่มต้น เราเรียกใช้ GNOME
    ผู้บริหาร "$GSESSION" --session=gnome
elif [ -n "$STARTKDE" ]; แล้ว
    # ถ้าไม่ได้ติดตั้ง GNOME ให้ลองใช้ KDE
    ผู้บริหาร "$STARTKDE"
ไฟ

# เราควรสนับสนุนสคริปต์ /etc/X11/xinit/Xclients.d
XCLIENTS_D=/etc/X11/xinit/Xclients.d
ถ้า [ "$#" -eq 1 ] && [ -x "$XCLIENTS_D/Xclients.$1.sh" ]; แล้ว
    exec -l $SHELL -c "$SSH_AGENT $XCLIENTS_D/Xclients.$1.sh"
ไฟ

# ล้มเหลวในความปลอดภัย.

# ไฟล์เหล่านี้ถูกทิ้งไว้โดย TheNextLevel
rm -f $HOME/Xrootenv.0

#อั่ก! ไม่มีอะไรดีติดตั้ง ถอยกลับไปเป็น twm
{
    # gosh ไม่มีทั้ง fvwm95 และ fvwm2;
    # ถอยกลับไปสู่การตั้งค่าที่ไม่ปลอดภัย
    [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'

    ถ้า [ -x /usr/bin/xclock ] ; แล้ว
        /usr/bin/xclock -เรขาคณิต 100x100-5+5 &
    ไฟ
    ถ้า [ -x /usr/bin/xterm ] ; แล้ว
        /usr/bin/xterm -เรขาคณิต 80x50-50+150 &
    ไฟ
    ถ้า [ -x /usr/bin/firefox -a -f /usr/share/doc/HTML/index.html ]; แล้ว
        /usr/bin/firefox /usr/share/doc/HTML/index.html &
    ไฟ
    ถ้า [ -x /usr/bin/twm ] ; แล้ว
        ผู้บริหาร /usr/bin/twm
    ไฟ
}

สิ่งที่โง่คือหลังจากพยายามเริ่มวินาที เซิร์ฟเวอร์ vnc ประมาณ 50 ครั้ง มันมักจะใช้งานได้หนึ่งครั้ง เมื่อฉันหยุดและเริ่มบริการอีกครั้ง มันจะไม่แสดงอะไรอีกเลย ยกเว้นเคอร์เซอร์ของเมาส์

มีหน่วยความจำว่างเหลือเฟือ (ประมาณ 5 กิกะไบต์) และยังมีพื้นที่จัดเก็บเหลือเฟือ (ประมาณ 100 กิกะไบต์) เมื่อฉันแก้ไขของฉัน ~/.vnc/xstartup ไฟล์เพื่อรวมเฉพาะตัวจัดการไฟล์ มันทำงานได้ดีทุกครั้ง การพยายามเรียกใช้เซสชันสำหรับผู้ใช้หลายคนดูเหมือนจะเป็นปัญหา

ขอบคุณที่อ่านทั้งหมดนี้ ฉันเสียเวลาไปนับไม่ถ้วนในการพยายามแก้ไขจุดบกพร่องนี้โดยไม่มีการปรับปรุง (สำคัญ) ใดๆ

อัปเดต 1: หลังจากแก้ไขเพิ่มเติมหลายชั่วโมง ฉันก็ยังไม่ทำงานของ gnome เวลาที่สิ้นหวังต้องใช้มาตรการที่สิ้นหวัง ดังนั้นฉันจึงลงเอยด้วยการติดตั้ง Xfce และทำให้สวยงามยิ่งขึ้นด้วยธีมที่สวยงามและชุดไอคอน มันใช้งานได้หลังจากที่ฉันติดตั้ง ฉันลบการอ้างอิงคำพังเพยทั้งหมดออกจาก xstartup ไฟล์และเพิ่ม startxfce4.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา