부팅 시 GUI 애플리케이션을 자동으로 시작해야 하는데 네트워크 시작 후 올바른 방법은 무엇입니까? 내 운영 체제는 LXDE가 포함된 Lubuntu입니다. crontab, rc.local 및 autostart와 같은 다른 방법을 시도했지만 성공하지 못했습니다.
답변1
LXDE용 시작 스크립트를 배치하는 방법을 알고 있는 경우(참조문서), 언제든지 사용자 정의 스크립트를 작성할 수 있습니다.
until ip link show $interface | grep -F -q "state UP"; do
sleep 10 # wait every ten second
done
# interface is up, now start program
exec bla
설명하다:
ip link show $interface
인터페이스 상태가 포함된 줄을 인쇄합니다(이 예에서는enp0s25
).3: enp0s25: mtu 1500 qdisc fq_codel 상태 UP 모드 DEFAULT 그룹 기본 qlen 1000
grep -F -q "state UP"
출력에 행이 포함되어 있는지 확인합니다state UP
. 그렇다면 성공(종료 코드 0)을 반환하고, 그렇지 않으면 실패(종료 코드 1)를 반환합니다.until … do; sleep 10; done
sleep 10
명령이 성공할 때까지, 즉ip
표시될 때까지 실행합니다state UP
. 인터페이스가 작동하지 않는 한 10초 정도 기다린 후 다시 확인하세요.인터페이스가 나타나면 루프가 종료되고 다음 스크립트가 실행됩니다.
물론 이것은 이상적인 해결책은 아니지만 항상 작동하는 "바쁨 대기"입니다. (또는 실제 인터넷 연결을 보장하려면 ping -W 2 -c 1 google.com >& /dev/null
대신 사용하세요.)ip … | grep
일부 네트워크 관리자를 사용하는 경우 해당 설명서를 확인하여 네트워크 연결이 설정될 때 실행되는 스크립트를 추가할 수 있는지 확인하세요. 그러나 이는 루트 액세스에서만 작동할 수 있으므로 X 세션에서 프로그램을 시작하는 것이 복잡해집니다.