나는 얻으려고 노력해왔다.적색편이시작앞으로특히 사용자를 전환할 때 밝은 시작 화면이 눈부시지 않도록 로그인하세요.
Redshift를 서비스로 실행하는 것은 완전히 지원되지 않는 것 같습니다(예:이 오류) 하지만 그럴 것 같다가능한원칙적으로.
시도한 후AskUbuntu에서 찾은 일부 내용그래도 작동하지 않으면 현재 내 시도는 내 자신의 신생 작업을 구축하는 것입니다 /etc/init/redshift.conf
.
# Redshift
description "Redshift"
author "[email protected]"
start on (started lightdm)
script
exec redshift -c /etc/redshift.conf
end script
stop on runlevel [016]
내 생각에는 LightDM이 실행된 후에 시작하는 것이 효과적이며 중지하는 것도 좋습니다.
이제 이것은 내 로그 파일에 기록됩니다 /var/log/upstart/redshift.log
.
`RANDR Query Version' returned error -1
Initialization of randr failed.
이 오류를 인터넷 검색해도 많은 정보가 제공되지 않습니다. 나추측하다아직은 이르고 디스플레이 매직과 관련된 일부 서비스가 아직 실행되지 않고 있습니다.
내 표정은 어떠해야 할까 start on
?
Ubuntu 14.04 LTS; 3.13.0-77-일반 #121-Ubuntu SMP... x86_64 GNU/Linux
RandR 서버 버전 1.12.1;
답변1
적색편이 vs.X 서버. 시스템 시작의 일부로 시작할 수 있지만 이는 취약합니다. X 서버 세션(X 로그인 세션보다 광범위함)의 컨텍스트에서 시작하는 것이 안정적입니다.
여러 X 서버가 주어진 시간에 동일한 시스템에서 실행될 수 있습니다. 그들은 선착순으로 디스플레이 번호를 할당합니다. 표시 번호는 프로그램이 접속할 서버를 아는 방법과 DISPLAY
프로그램이 환경 변수에서 서버를 찾는 방법입니다. GUI 프로그램을 시작하는 자연스러운 방법은 DISPLAY
환경 변수를 원하는 값으로 설정하는 것입니다.
lightdm이 X 서버를 시작하는 첫 번째 엔터티라고 가정할 수 있으므로 시작 작업에서 :0
환경 변수를 표시하고 하드코딩합니다 . DISPLAY=:0
또한 변수를 설정해야 합니다 XAUTHORITY
(참조:원격 X 모니터에서 창 열기("모니터를 열 수 없습니다" 이유)?). Ubuntu의 lightdm은 쿠키를 /var/lib/lightdm/.Xauthority
.
env DISPLAY=":0"
env XAUTHORITY="/var/lib/lightdm/.Xauthority"
그러나 이는 깨지기 쉽습니다. 디스플레이 lightdm이 궁극적으로 위치한다고 가정합니다 :0
. 경쟁 조건으로 인해 현재 형식에서는 작동하지 않을 것이라고 생각합니다. lightdm
X 서버가 시작되어 실행되기 전에 작업이 시작된 것으로 간주될 수 있습니다(그러나 이에 대해 잘 모르겠습니다. 무엇인지 모르겠습니다. 작업이 시작된 것으로 계산됩니다.)
깨끗한 방법은 lightdm이 Redshift를 시작하도록 하는 것입니다. 그렇게 하면 적절한 시간에 적절한 맥락에서 시작됩니다. 이 섹션 의 줄을 편집 하고 /etc/lightdm/lightdm.conf
추가합니다 .redshift -c /etc/redshift.conf
display-setup-script
SeatDefaults
[SeatDefaults]
…
display-setup-script=redshift -c /etc/redshift.conf &
&
백그라운드에서 시작하도록 주의하십시오 redshift
(그렇지 않으면 lightdm이 완료될 때까지 기다립니다). X 서버가 종료되면 Redshift도 종료된다고 가정합니다. X 애플리케이션은 일반적으로 디스플레이가 사라질 때 종료되므로 프로세스를 추적하고 명시적으로 종료할 필요가 없습니다.
답변2
피하다lightdm-freeze.
그 이유는 &
쉘에 전달되지 않고 레드시프트에 매개변수로 전달되기 때문이다( ps -aux
검증 참조). 이 문제를 해결하려면 f.ex 스크립트를 생성하세요.
redshift -c /etc/redshift.conf &
존재하다 /root/bin/redshift.sh
. chmod 755 및 /etc/lightdm/lightdm.conf.d/90-redshift.conf
포함하도록 편집
[Seat:*]
display-setup-script=/root/bin/redshift.sh
( [Seat:*]
새로운 것 같습니다 [SeatDefaults]
).