
저는 Fedora 21에서 LXDE를 실행하고 있습니다. 내 스크립트의 목적은 두 개의 모니터에 걸쳐 디스플레이를 확장하는 것입니다.
#!/bin/sh
xrandr --output VIRTUAL1 --off --output LVDS1 --mode 1440x900 --pos 1280x124 --rotate normal --output TV1 --off --output VGA1 --mode 1280x1024 --pos 0x0 --rotate normal
터미널 창에서는 문제 없이 실행되지만 크론 작업으로 차단됩니다.
내 크론 로그에서:
7월 9일 20:14:01 localhost CROND[19494]: (사용자) CMD (/home/user/screens.sh)
7월 9일 20:14:01 localhost CROND[19492]: (사용자) CMDOUT ( 디스플레이를 열 수 없습니다)
답변1
$DISPLAY
xrandr은 작동 중인 X 세션을 알려주기 위해 변수를 설정 해야 하며 이 변수는 cron 환경에서 설정되지 않습니다.
startx
xrandr는 기본 로컬 X 세션, TTY에서 실행하여 시작한 두 번째 세션, SSH를 통해 원격 디스플레이로 전달된 세션, Xnest를 사용하여 다른 세션에서 실행되는 중첩 X 세션 등을 처리할 수 있습니다 . $DISPLAY
환경 변수(또는 명령줄 인수) 가 없으면 --display
일반적으로 어떤 세션에 연결할지 알 수 없으므로 종료됩니다.
예를 들어, 다음 명령으로 문제를 해결할 수 있습니다.
DISPLAY=:0 /home/user/screens.sh