두 번째 X 세션으로 전환하면 첫 번째 X 세션이 종료됩니다.

두 번째 X 세션으로 전환하면 첫 번째 X 세션이 종료됩니다.

여기서 이상한 문제에 직면했습니다. 다음 구성(요약)을 갖춘 Linux 시스템이 있습니다.

  • 델 인스피론 i5
  • 엔비디아 GP108M
  • GNU/Linux 데비안 "테스트"
  • xorg-server2:1.20.0-3

나에 따르면 Xorg.0.log내가 실행 중인 드라이버는 "nouveau"입니다.

[ 30442.522] (II) LoadModule: "nouveau"  
<SNIP>
[ 30442.777] (--) NOUVEAU(G0): Chipset: "NVIDIA NV138"

내 인사는 LightDM이고 내 DM은 Xfce입니다. user2다음 프로세스로 두 번째 세션을 시작하려고 합니다 .

  1. VT-1로 전환( Ctrl++ Alt)F1
  2. 로그인 방법user2
  3. 달리기startx -- :1

인사하는 사람이 없습니다. user2Xfce 세션이 실행 중입니다. 두 세션이 모두 실행되고 있는지 확인할 수 있습니다 htop.

그러나 VT-7(++)로 다시 전환하면 Ctrl세션이 종료된 것을 볼 수 있습니다. VT-7 환영 구역으로 돌아갑니다.AltF7user1


로그의 정보

그러나 VT 간에 전환할 때마다 syslog이것이 X 세션이 종료되었음을 의미하지는 않습니다.

예를 들어, user1VT-7에서 Xfce 세션을 시작합니다. 그런 다음 VT-1로 전환한 다음 다시 VT-7로 전환했습니다. 다음 (요약) 오류가 발생합니다두 배존재하다 syslog:

kernel: ------------[ cut here ]------------
kernel: nouveau 0000:01:00.0: timeout
kernel: WARNING: CPU: 0 PID: 1783 at /build/linux-0buYvw/linux-4.17.8/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c:86 nvkm_pmu_reset+0x14c/0x160 [nouveau]
---[ cut 4 lines ]---
kernel: Hardware name: Dell Inc. Inspiron 7472/0WFX2M, BIOS 1.1.3 01/25/2018
kernel: RIP: 0010:nvkm_pmu_reset+0x14c/0x160 [nouveau]
---[ cut 9 lines ]---
kernel: Call Trace:
kernel:  nvkm_pmu_init+0x16/0x40 [nouveau]
kernel:  nvkm_subdev_init+0xb2/0x1f0 [nouveau]
kernel:  nvkm_device_init+0x132/0x270 [nouveau]
kernel:  nvkm_udevice_init+0x41/0x60 [nouveau]
kernel:  nvkm_object_init+0x3d/0x180 [nouveau]
kernel:  nvkm_object_init+0xa0/0x180 [nouveau]
kernel:  nvkm_object_init+0xa0/0x180 [nouveau]
kernel:  ? pci_restore_standard_config+0x40/0x40
kernel:  nouveau_do_resume+0x28/0x140 [nouveau]
kernel:  nouveau_pmops_runtime_resume+0x88/0x150 [nouveau]
kernel:  pci_pm_runtime_resume+0x78/0xb0
kernel:  __rpm_callback+0xc7/0x200
kernel:  ? pci_restore_standard_config+0x40/0x40
kernel:  rpm_callback+0x1f/0x70
kernel:  ? pci_restore_standard_config+0x40/0x40
kernel:  rpm_resume+0x4c4/0x790
kernel:  ? do_wp_page+0x154/0x500
kernel:  __pm_runtime_resume+0x47/0x70
kernel:  nouveau_drm_ioctl+0x35/0xc0 [nouveau]
kernel:  do_vfs_ioctl+0xa4/0x630
kernel:  ? handle_mm_fault+0xdc/0x210
kernel:  ksys_ioctl+0x70/0x80
kernel:  __x64_sys_ioctl+0x16/0x20
kernel:  do_syscall_64+0x55/0x110
kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
----[ cut 8 lines ]--- 
kernel: ---[ end trace 81b347516b37c927 ]---

이제 VT-1로 전환하고 로그인 user2하여 startx -- :0. 그래도 세션이 종료되지 않았으며 를 통해 이를 확인할 수 있습니다 htop.

하지만, 이제 VT-1의 X 세션에서 VT-7의 다른 X 세션으로 전환하면 다음과 같이 나타납니다.syslog

pulseaudio[3372]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
pulseaudio[3372]:       after 17 requests (17 known processed) with 0 events remaining.
xfce4-notifyd[3565]: xfce4-notifyd: Fatal IO error 11 (Resource temporarily unavailable) on X server :0. 
at-spi-bus-launcher[1368]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
at-spi-bus-launcher[1368]:       after 443 requests (443 known processed) with 0 events remaining.
systemd[1308]: xfce4-notifyd.service: Main process exited, code=exited, status=1/FAILURE
systemd[1308]: xfce4-notifyd.service: Failed with result 'exit-code'.
systemd[1308]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
systemd[1308]: pulseaudio.service: Failed with result 'exit-code'.
systemd[1308]: pulseaudio.service: Service RestartSec=100ms expired, scheduling restart.
systemd[1308]: pulseaudio.service: Scheduled restart job, restart counter is at 3.
systemd[1308]: Stopped Sound Service.
systemd[1308]: Starting Sound Service...
rtkit-daemon[1552]: Successfully made thread 3898 of process 3898 (n/a) owned by '1000' high priority at nice level -11.
rtkit-daemon[1552]: Supervising 4 threads of 2 processes of 2 users.
pulseaudio[3898]: W: [pulseaudio] pid.c: Stale PID file, overwriting.
avahi-daemon[644]: Withdrawing address record for ---[ IPv6 redacted ]--- on enp2s0.
lightdm[3907]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files

VT-7 환영 구역으로 돌아갑니다. X 서버가 다시 시작(?)되었습니다.

관련하여 Xorg.0.logVT-1에서 VT-7로 전환하고 세션이 종료되면 다음 줄이 추가됩니다.

[ 15945.806] (II) event7  - Power Button: device removed
[ 15945.832] (II) event10 - Video Bus: device removed
[ 15945.848] (II) event11 - Video Bus: device removed
[ 15945.877] (II) event5  - Power Button: device removed
[ 15945.908] (II) event6  - Sleep Button: device removed
[ 15945.933] (II) event1  - Microsoft Wired Keyboard 600: device removed
[ 15945.953] (II) event20 - PixArt Microsoft USB Optical Mouse: device removed
[ 15945.972] (II) event12 - Integrated Webcam: Integrated W: device removed
[ 15945.988] (II) event8  - DELL0828:00 06CB:7E7E Touchpad: device removed
[ 15946.021] (II) event3  - Intel HID events: device removed
[ 15946.044] (II) event9  - Dell WMI hotkeys: device removed
[ 15946.068] (II) event0  - AT Translated Set 2 keyboard: device removed
[ 15946.084] (II) event21 - PS/2 Generic Mouse: device removed
[ 15946.101] (II) event2  - Microsoft Wired Keyboard 600: device removed
[ 15946.116] (II) AIGLX: Suspending AIGLX clients for VT switch
[ 15946.117] (II) NOUVEAU(G0): NVLeaveVT is called.

답변1

모듈에서 커널 패닉이 발생하여 nouveauDRM 모듈이 손상되고, 연결된 X 서버가 오류 상태일 경우 모듈도 손상됩니다.

최신 커널 및 nouveau가능한 일치 모듈로 업그레이드하십시오. 여전히 동일한 충돌이 발생하는 경우 개발자에게 버그 보고서를 제출하세요 nouveau. 전체 dmesg금액을 포함해야 합니다 Xorg.*.log.

답변2

문제는 LightDM이 startx. Startx여러 세션을 실행하는 오래된 방법이지만 일부 최신 시스템에서는 이를 반드시 지원하지 않습니다. LightDM을 사용하여 다른 VT에 다른 사용자를 로그인하는 방법이 지원됩니다. 사용자는 간단히 터미널 창을 열고 다음 명령을 실행합니다.

dm-tool switch-to-greeter

이 명령을 실행하면 VT-7의 이전 Xsession이 잠기고 다른 사용자가 로그인할 수 있도록 VT-8에서 새 Xsession이 열립니다. CTRL-ALT-F7 및 CTRL-ALT-F8을 사용한 세션 간 전환은 평소와 같이 작동합니다(스위치는 이전 Xsession을 잠그지 않습니다). 모든 실행 좌석에 대한 정보는 다음 명령으로 제공됩니다.

dm-tool list-seats

(이미 실행 중인 Xserver 외에) 다른 Xserver를 실행해야 하는 경우 전체 답변을 따라갈 수 있습니다.https://askubuntu.com/a/519164/981550(질문에서https://askubuntu.com/questions/518454/what-does-startx-command-doXnest) (서버 내 그래픽 서버) 사용을 권장합니다 .

답변3

Raspberry Pi에서 Debian Buster를 사용하여 동일한 동작을 수행하므로 누보가 없습니다.

tty1-6에서 startx를 사용하면 tty7에서 lightdm으로 시작된 세션이 종료되고 Greeter로 돌아갑니다. 그러나 startx를 사용하면 여러 세션을 수동으로 시작하고 문제 없이 세션 간에 전환할 수 있습니다.

(죄송합니다. 이는 실제 답변은 아니지만 해결 방법으로 간주될 수 있습니다.)

관련 정보