어떤 포트폴리오 관리자가 실행 중인지 확인하는 방법

어떤 포트폴리오 관리자가 실행 중인지 확인하는 방법

저는 Arch Linux를 사용하고 있으며 Gnome 및 i3 창 관리자가 설치되어 있습니다. i3가 실행되는 동안 복합 관리자인 Compton을 시작하려고 합니다. 하지만 이렇게 하려고 하면 다음과 같은 오류가 발생합니다.

$ compton
[ 04/11/2019 22:32:36.443 register_cm FATAL ERROR ] Another composite manager is already running

나는 이것이 Compton이 이미 실행 중이거나 Mutt가 실행 중임을 의미한다고 생각하지만 어느 쪽인지는 잘 모르겠습니다.

현재 실행 중인 복합 관리자를 확인하는 데 사용할 수 있는 명령이 있습니까?

답변1

당신은 그것을 사용할 수 있습니다인시.

inxi -Gxx | grep compositor

출력은 다음과 같습니다

           alternate: ati,fbdev compositor: compton resolution: <xdpyinfo missing> 

현재 Compton이 신디사이저로 사용되고 있는 것을 볼 수 있습니다. 신디사이저가 없으면 grep 매칭이 불가능합니다.

스위치:

  • -G그래픽 정보(카드, 드라이버, 디스플레이 프로토콜(사용 가능한 경우), 디스플레이 서버, 해상도, 렌더러, OpenGL 버전)을 표시합니다.
  • -xx추가 추가 데이터를 표시합니다. (사용 -G, 디스플레이 칩 공급업체: 각 그래픽 카드의 제품 ID, OpenGL 호환 버전,신디사이저(실험적) 대체 Xorg 드라이버.

답변2

Compton이나 Mutter 가 설치되어 있지 않지만 xcompmgr예제XCompositeRedirectSubwindows()XSetErrorHandler

static int
error (Display *dpy, XErrorEvent *ev)
{
    ...
    if (ev->request_code == composite_opcode &&
        ev->minor_code == X_CompositeRedirectSubwindows)
    {
        fprintf (stderr, "Another composite manager is already running\n");
        exit (1);

이것이 유일한 가능한 방법인 것 같습니다:XCompositeGetOverlayWindow()항상 성공할 것이고지도이미 사용 중인지 여부에 관계없이 창을 오버레이합니다.

CompositeGetOverlayWindow

이 요청은 클라이언트가 해당 화면에 복합 오버레이 창을 사용하려고 함을 나타냅니다. 복합 적용 범위 창이 아직 매핑되지 않은 경우 이 요청에 의해 매핑됩니다.

노트:

Mutter는 별도의 프로세스가 아닌 동적 라이브러리(일반적으로 gnome-shell에 의해 로드됨)로 구현됩니다.

grep -sl mutter /proc/*/maps

Linux에서는 이를 사용하는 모든 프로세스를 찾을 수 있습니다.

답변3

있는지 알 수 있는 명령이 없습니다.어느내가 아는 한 신디사이저가 현재 실행 중입니다. 하지만 이를 사용 pgrep하면 알 수 있습니다.주어진신디사이저가 현재 실행 중입니다.

$ pgrep compton
18169

pgrep다음을 사용하여 프로세스를 종료할 수 있도록 PID가 제공됩니다 kill.

$ kill 18169

또는 pkillPID 대신 프로세스 이름을 지정하여 프로세스를 종료할 수 있습니다.

$ pkill compton

일부 합성기(Xfce와 같은)는 비활성화하기 위해 다른 방법이 필요할 수 있습니다:

$ xfwm4 --compositor=off --replace

관련 정보