gdm이 소유한 /usr/bin/gnome-shell은 pop!os 20.04에서 더 많은 상주 RAM을 소비합니다. 프로세스가 존재해서는 안 됩니다.

gdm이 소유한 /usr/bin/gnome-shell은 pop!os 20.04에서 더 많은 상주 RAM을 소비합니다. 프로세스가 존재해서는 안 됩니다.

이것은 X에서 실행되는 pop!os 20.04입니다.

이 질문에 따르면https://gitlab.gnome.org/GNOME/gdm/-/issues/222 옛날 옛적에 gnome은 두 개의 gnome 쉘을 열어 두었습니다. 하나는 사용자용이고 다른 하나는 접수원용입니다(사용자 gdm에서 실행). 그런 다음 로그인 시 인사 담당자의 그놈 쉘이 "해제"되도록 변경되었습니다.

하지만 이런 일이 발생하지 않는 pop!os 20.04가 있고 gdm gnome-shell이 ​​많은 상주 메모리를 사용하도록 증가합니다(예: 정상 작동 5일 후 >3GB).

나는 sudo kill -9 프로세스를 수행할 수 있으며 부작용은 없는 것 같습니다. 그러나 이후에도 다음 메시지가 반복적으로 나타났습니다.

journalctl _UID=110

gnome-shell-x11.service: Scheduled restart job, restart counter is at 31.
Sep 14 08:13:48 indigo systemd[1392]: Stopped GNOME Shell on X11.
Sep 14 08:13:48 indigo systemd[1392]: Starting GNOME Shell on X11...
Sep 14 08:15:18 indigo systemd[1392]: gnome-shell-x11.service: start operation timed out. Terminating.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: State 'stop-sigterm' timed out. Killing.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Killing process 36912 (gnome-shell) with signal SIGKILL.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Killing process 36917 (dconf worker) with signal SIGKILL.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Main process exited, code=killed, status=9/KILL
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Failed with result 'timeout'.
Sep 14 08:15:23 indigo systemd[1392]: Failed to start GNOME Shell on X11.
Sep 14 08:15:23 indigo systemd[1392]: gnome-shell-x11.service: Scheduled restart job, restart counter is at 32.
Sep 14 08:15:23 indigo systemd[1392]: Stopped GNOME Shell on X11.
Sep 14 08:15:23 indigo systemd[1392]: Starting GNOME Shell on X11...

저는 역시 X11 아래의 가상 머신에서 동일한 버전의 pop을 실행하고 있으며, 가상 머신의 gdm에서는 실행되는 프로세스가 없습니다.

내 호스트 pop!os(내 실제 데스크톱)에 있는 내용은 다음과 같습니다. gdm에서 실행되는 또 다른 gnome-shell 프로세스가 있다는 점에 유의하세요. 그 중 단 한 명만이 기억 상주 가출 소비자가 되었습니다. (제가 저 한 명을 죽였습니다.)


UID          PID    PPID  C STIME TTY          TIME CMD
gdm         1392       1  0 Sep13 ?        00:00:00 /lib/systemd/systemd --user
gdm         1399    1392  0 Sep13 ?        00:00:00 (sd-pam)
gdm         1444    1392  0 Sep13 ?        00:00:00 /usr/bin/appimagelauncherd
gdm         1445    1392  0 Sep13 ?        00:00:00 /usr/bin/appimagelauncherfs
gdm         1449    1392  0 Sep13 ?        00:00:00 /usr/bin/pulseaudio --daemonize=no --log-target=journal
gdm         1451    1392  0 Sep13 ?        00:00:00 /usr/libexec/tracker-miner-fs
gdm         1458    1379  0 Sep13 tty1     00:00:00 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
gdm         1460    1458  0 Sep13 tty1     00:00:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/110/gdm/Xauthority -background none -noreset -keeptty -verbose 3
gdm         1463    1392  0 Sep13 ?        00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
gdm         1485    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfsd
gdm         1514    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfsd-fuse /run/user/110/gvfs -f -o big_writes
gdm         1522    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor
gdm         1528    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-goa-volume-monitor
gdm         1532    1392  0 Sep13 ?        00:00:00 /usr/libexec/goa-daemon
gdm         1608    1392  0 Sep13 ?        00:00:00 /usr/libexec/goa-identity-service
gdm         1643    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-gphoto2-volume-monitor
gdm         1651    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-afc-volume-monitor
gdm         1656    1392  0 Sep13 ?        00:00:00 /usr/libexec/gvfs-mtp-volume-monitor
gdm         1698    1458  0 Sep13 tty1     00:00:00 /usr/libexec/gnome-session-binary --systemd --autostart /usr/share/gdm/greeter/autostart
gdm         1745    1392  0 Sep13 ?        00:00:00 /usr/libexec/at-spi-bus-launcher
gdm         1753    1745  0 Sep13 ?        00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
gdm         1811    1392  0 Sep13 ?        00:00:00 /usr/libexec/gnome-session-ctl --monitor
gdm         1824    1392  0 Sep13 ?        00:00:00 ssh-agent -D -a /run/user/110/openssh_agent
gdm         1829    1392  0 Sep13 ?        00:00:00 /usr/libexec/gnome-session-binary --systemd-service --session=gnome-login
gdm         1955    1392  0 Sep13 ?        00:00:00 /usr/libexec/at-spi2-registryd --use-gnome-session
gdm         1962    1392  0 Sep13 ?        00:00:00 /usr/libexec/xdg-permission-store
gdm         1997    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-a11y-settings
gdm         1998    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-color
gdm         1999    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-keyboard
gdm         2001    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-media-keys
gdm         2003    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-power
gdm         2005    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-print-notifications
gdm         2009    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-rfkill
gdm         2010    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-smartcard
gdm         2011    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-sound
gdm         2014    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-usb-protection
gdm         2016    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-wacom
gdm         2020    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-wwan
gdm         2022    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-xsettings
gdm         2058    1392  0 Sep13 ?        00:00:00 /usr/libexec/gsd-printer
gdm         2269    1392  0 Sep13 ?        00:00:00 /usr/libexec/dconf-service
gdm        37465    1392  0 08:18 ?        00:00:00 /usr/bin/gnome-shell

내 가상 인스턴스에서:

$ ps -f -u gdm
UID          PID    PPID  C STIME TTY          TIME CMD

그러니까 이상해요.

기본적으로 전체 gdm 세션을 실행하는 이유를 파악하는 방법을 모르겠습니다.

답변1

분명히 gdm3가 xserver 세션을 종료하도록 하는 패치는 상당히 새로운 것이며 아직 대부분의 장소에서 생산되지 않습니다. 내가 보고 있는 버그는 Fedora 32에서도 발생합니다(환영 프로그램이 기본값이 아닌 xorg를 사용하도록 강제하는 경우).

바라보다:https://gitlab.gnome.org/GNOME/gdm/-/issues/222

가상 머신은 wayland/xwayland를 인사말로 사용합니다. 이것이 더 쉬운 수정입니다.

/etc/gdm3/custom.conf xorg.txt를 강제하는 행을 주석 처리하려면 편집하세요 . 즉, 다음과 같이 파일을 편집하십시오.

[daemon]
# Uncoment the line below to force the login screen to use Xorg
#WaylandEnable=false

환영 프로그램이 wayland/xwayland를 사용할 때 xorg 로그인 세션이 시작되더라도 gdm3는 해당 세션을 종료하기 때문입니다. 따라서 gdm이 소유한 x 서버는 없습니다. 이로 인해 최소 300MB의 상주 RAM이 절약되었으며 제 경우에는 메모리 누수를 피할 수 있었습니다.

관련 정보