redshift
랩톱에 설치하고 시작 시 실행되도록 구성했습니다 . 그러나 실행하려면 활성 인터넷 연결이 필요합니다. 하지만 문제는 내 ISP가 활성 연결을 얻으려면 로그인을 요구한다는 것입니다. 따라서 시작 후 즉시 연결을 사용할 수 없으므로 redshift가 실행될 수 없습니다.
연결이 활성화되는 즉시 자동으로 redshift를 실행할 수 있는 방법이 있습니까? 저는 KDE를 사용하고 있습니다.
답변1
나는 당신이 자유롭게 연결할 수 있지만 다른 곳으로 요청을 보내기 전에 웹 인증 서비스를 거쳐야 하는 이러한 네트워크 중 하나를 사용하고 있다고 가정합니다.
내 마음에 떠오른 첫 번째 해결책은 래퍼 스크립트를 작성 redshift
하고 시작하기 전에 주기적으로 인터넷 연결을 확인하는 것이었습니다 redshift
. 그런 다음 redshift
스크립트 자체 가 아닌 시작 시 실행되도록 스크립트를 설정하기만 하면 됩니다 . 첫 번째 예는 다음과 같습니다.
#!/bin/bash
while ! ping -qw1 -c1 8.8.8.8 >/dev/null 2>&1; do
# As long as we can't ping Google's DNS, sleep.
sleep 5
done
exec /path/to/redshift # We exited the loop, we can run redshift.
이제 이 솔루션을 사용하면 여전히 오탐지가 발생할 수 있습니다. ICMP 패킷이 차단되지 않았지만 나머지 트래픽처럼 (인증 서버로) 리디렉션되는 경우 ECHO 응답을 받지만 올바른 대상에서 수신되지 않습니다. 이 문제를 해결하는 간단한 방법은 HTTP를 사용하는 것입니다. 요청을 하고, 인증 페이지를 받은 경우 페이지 내용을 확인하세요.
#!/bin/bash
while ! wget -qO- http://example.com/ | grep -q Example; do
sleep 5
done
exec /path/to/redshift
어떤 솔루션을 선택하든 스크립트를 실행 가능하게 만드는 것을 잊지 마세요.
$ chmod +x redshift_at_boot.sh
redshift
그런 다음 시작 시 스크립트를 실행하는 대신 스크립트를 실행하기만 하면 됩니다 . redshift
루트로 실행할 필요가 없다면 KDE에서 스크립트를 예약할 수 있습니다환경 설정>시작 및 종료>자동 시작. 루트 액세스가 필요한 경우 배포가 시작될 때 작업을 처리하는 방법을 알아보세요. KDE 기능을 사용하는 또 다른 방법은 스크립트 앞 gksudo
이나 pkexec
뒤에 추가하는 것입니다 exec
(암호 프롬프트에 신경 쓰지 않는다는 가정 하에).