인터넷 연결 후 즉시 redshift 실행

인터넷 연결 후 즉시 redshift 실행

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(암호 프롬프트에 신경 쓰지 않는다는 가정 하에).

관련 정보