Xvfb가 (이미) 디스플레이에서 실행 중인지 확인하는 방법 : 0?


17

제목은 모든 것을 말합니다. pgrep Xvfb트릭의 절반 만 수행합니다. 표시 번호를 알려주지 않습니다.

답변:


23

수행하려는 작업이 확실하지 않지만 "x display info"를 실행하여 X Display를 사용할 수 있는지 확인할 수 있습니다.

xdpyinfo -display :0 >/dev/null 2>&1 && echo "In use" || echo "Free"

참고 : 디스플레이에 액세스 할 수 없으면 "무료"로보고됩니다. 다른 방법은 /tmp/.X0-lockX 서버의 PID 파일 이 있는지 확인하는 것입니다 .

명령을 표시하는 대신 바이너리와 일치하는 프로세스를 확인하는 것이보다 안정적인 방법입니다.

pids=$(pidof /usr/bin/Xvfb)
if [ -n "$pids" ]; then
    processes="$(ps --format command --no-headers -ww --pid $pids)"
else
    echo "Not running"
fi

출처 : https://github.com/Bumblebee-Project/Bumblebee/blob/master/install-files/common-functions#L112


1
xdpyinfo나를 위해 트릭을 수행, 감사합니다! Btw. : 0에서 실행되는 Xvfb를 기반으로 DISPLAY env 변수를 설정하고 싶습니다.
Paweł Gościcki


Xvfb가 사용하는 디스플레이 번호를 얻으려고합니까? 내 대답에 ps 명령을 사용 해보고 display=":${processes##*:}";display="${%% *}"표시 번호를 얻는 것과 같은 것을 사용 하십시오 ( Xorg적어도 명령이 주어진 것으로 가정 )
Lekensteyn

에 대해서만 실행 :0되도록하므로 간단한 확인 :0만으로도 충분합니다. 다시 감사합니다!
Paweł Gościcki

프로세스 확인에 동의하지 않습니다. 프로세스가 실행 중일 수 있지만 완전히 초기화되지 않았습니다. xdpyinfo는 Xvfb와 통신한다고 가정하기 때문에 더 나은 솔루션 인 것처럼 보입니다.
Nathan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.