내 디스플레이 관리자가 무엇인지 알려주는 간단한 리눅스 명령이 있습니까?
Xfce를 사용하고 있습니다. 다른 데스크탑 환경은 일반적으로 다른 디스플레이 관리자와 관련되어 있습니까?
답변
불행히도 구성은 배포마다 다릅니다.
데비안 / 우분투
/etc/X11/default-display-manager
RedHat (Fedora에도 적용해야 함)
/etc/sysconfig/desktop
OpenSuSe
/etc/sysconfig/displaymanager
답변
없습니다. 디스플레이 관리자가 반드시 동일한 X 서버에서 실행되는 다른 것과 관련이있는 것은 아닙니다. 로그인하기 전에 디스플레이 관리자가 실행됩니다. 시스템 관리자가 선택합니다. 그 밖의 모든 것 (창 관리자, 세션 관리자, 데스크탑 환경 등)은 사용자가 선택합니다. 디스플레이 관리자가 필요하지 않습니다. 텍스트 모드로 로그인하고로 GUI를 시작하면 startx
디스플레이 관리자가 필요하지 않습니다.
시스템에서 어떤 디스플레이 관리자가 기본 디스플레이 관리자인지 확인할 수 있습니다 . 이것은 보편적이지만 가정이 아닌 일반적인 가정 하에서 만 정답을 줄 것입니다. 어떤 이유로 든 다른 관리자를 수동으로 실행 한 경우이 방법으로 알려주지 않습니다.
X 서버의 프로세스 ID를 찾는 것이 좋습니다. 부모 프로세스는 아마도 디스플레이 관리자 일 것입니다. 이를 위해서는 클라이언트가 X 서버와 동일한 시스템에서 실행되고 있어야합니다. lsof /tmp/.X11-unix/X${DISPLAY#:}
X 서버 프로세스가 표시됩니다 (X 소켓이에 있다고 가정 /tmp/.X11-unix
).
x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)
(설명 : 다음 lsof -F ''
과 같이 출력을 인쇄합니다 p1234
.이 -F
옵션은 기계 구문 분석 가능 출력 형식을 ''
의미하며, 그 p
앞에 문자 를 사용하여 PID 만 인쇄하는 것을 의미 합니다. x=${x#p}
초기 문자를 제거합니다 p
. 마지막 행은 X 서버의 상위 PID를 얻습니다. ( ps -o ppid -p $x
)을 호출 ps
하고 해당 상위 프로세스에 대한 정보를 표시하도록 호출 합니다.)
일부 배포판에서는 여러 디스플레이 관리자를 설치할 수 있습니다. 멀티 시트 시스템이 없다면 단 하나만 실행됩니다. 설치된 모든 디스플레이 관리자 패키지를 데비안 및 파생 제품 아래에 나열하려면 :
aptitude -F %p search '~i ~P^x-display-manager$'
또는
</var/lib/dpkg/status awk '
/^Package: / {package = $2}
/^Provides: .*x-display-manager/ {print package}'
답변
당신이 사용하는 경우 systemd 기반 배포를. 이 명령은 둘 이상의 디스플레이 관리자가 설치되어 있기 때문에 현재 구성된 디스플레이 관리자의 이름을 제공합니다.
grep '/usr/s\?bin' /etc/systemd/system/display-manager.service
출력은 다음과 같습니다
ExecStart=/usr/bin/mdm
민트 디스플레이 관리자를 사용하는 것 같습니다.
답변
systemd를 사용하는 경우
systemctl status display-manager
컴퓨터에서 활성 디스플레이 관리자 서비스의 이름과 상태를 표시합니다.
답변
디스플레이 관리자 이름은 DESKTOP_SESSION에 있어야합니다.
echo $DESKTOP_SESSION
나를 위해 “gnome”을 반환합니다.
편집
당신이 맞아요. 그들은 XFCEs bugzilla 에서 계속 진행하고 있기 때문에 아마도 신뢰할 수는 없습니다.
답변
@Gilles가 말했듯이 디스플레이 관리자는 데스크탑 환경을 시작합니다.
데비안 위키 에 따르면 , 이것은 대부분 dm
예외로만 끝납니다 slim
.
따라서 대부분의 사람들의 요구에 충분합니다.
ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$
또는 부모 프로세스로 존재하며 분기되지 않습니다 (init 시스템 제외).
ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$"
답변
어떤 경우에는 wmctrl이 도움이 될 수 있습니다. 이 유틸리티는 많은 Windows 관리자와 호환됩니다.
wmcrt -m
현재 사용 된 창 관리자의 이름을 표시해야합니다.