시스템이 `/dev/dri/...`를 열지 않는 이유는 무엇입니까?

시스템이 `/dev/dri/...`를 열지 않는 이유는 무엇입니까?

이제 tty6의 텍스트 콘솔에서 tty3의 GNOME으로 전환하면 내 시스템이 디스크 IO를 수행하고 있습니다. 1.4GB의 스왑 공간을 사용 중입니다.

tty6에서 sudo lsof -p 1 | grep dev"와 유사한 문제가 있는지 확인하려면6GB의 스왑 공간으로 무엇을 할 수 있나요?". 거기에 있는 배경 정보를 기반으로 PID 1에 열린 파일 설명자가 있을 것으로 예상했습니다 /dev/dri/.... 하지만 아무것도 없습니다!

tty3에서 명령을 실행할 때도 마찬가지입니다. 그러나 이제 출력에는 /dev/input/....

tty3으로 다시 전환하고 다시 시도하면 이러한 결과가 반복됩니다.

참고: 이것은 제가 업스트림 systemd에서 작업한 코드이므로 아마도 제 잘못일 것입니다 :-). systemd git commit message를 살펴보면 src/login이 동작에 대한 명백한 의도적 변경을 찾을 수 없습니다.

Fedora 27 및 Fedora 28용 가상 머신이 있습니다.그들을Fedora 27을 부팅하고 lsof직렬 콘솔에서 실행하면 괜찮아 보입니다. 그러나 Fedora 28 VM에서 chvt 6실행하면 동일한 문제가 발생합니다.


편집: SELinux를 "허용"(정책 위반은 기록되지만 허용됨)으로 설정하면 이 명백한 회귀가 사라집니다. 저는 이것을 Fedora의 이슈로 제출했습니다. SELinux가 systemd-logind 재시작 코드를 방해합니다.


Fedora 27 VM에서는 이런 일이 발생하지 않습니다.

  • systemd-234-10.git5f8984e.fc27.x86_64
  • 그놈 쉘-3.26.2-5.fc27.x86_64

답변1

VT 스위치로 인해 gnome-shell이 ​​입력 장치를 해제하게 되는 것 같습니다(로그인된 dbus API의 ReleaseDevice 메서드). 이로 인해 로그인 시 장치의 FD가 삭제됩니다.

따라서 이는 문제의 영향을 받을 가능성이 높습니다.8344 화"session_device_free(sd)도 모두 삭제됩니다.다른이 세션에 대한 장치 fds". systemd v239에 대한 병합이 수정되었습니다.

수정 사항이 포함된 systemd의 시험판 버전을 테스트하여 이를 확인했습니다.

..."내 6GB 스왑 영역을 사용할 수 있는 것은 무엇입니까?"와 유사한 질문을 확인하십시오.

아마. v239에는 이 문제에 대한 수정 사항도 포함되어 있으므로 systemd-238-7.fc28.1.x86_64.

관련 정보