트레이가 닫히거나 bash 스크립트에 빈 CD가 삽입될 때까지 기다립니다.

트레이가 닫히거나 bash 스크립트에 빈 CD가 삽입될 때까지 기다립니다.

내 Linux bash 스크립트에서 다음 이벤트 중 하나를 기다리고 싶습니다.

  • 사용자가 DVD 드라이브 트레이를 닫았습니다.

또는

  • 쓰기 가능한 DVD가 드라이브에 삽입되었습니다.

불행히도 드라이브의 미디어를 확인하는 모든 명령은 먼저 트레이를 닫고 나는그러고 싶지 않아- 그래야지열려있어사용자가 DVD를 삽입할 때까지 기다립니다.

어떻게 해야 하는지 조언해 주시겠어요?

답변1

이는 플랫폼에 따라 다릅니다. 당신이 해야 할 일은 (a) /var/log/messagesascpi 이벤트를 구문 분석하거나 (b) 플랫폼에 따라 다음 중 하나입니다.DBUS 변경 사항 모니터링. 트레이를 열고 닫을 때 감지할 수 있는 이벤트가 발생하는데, 이는 그만한 가치보다 더 큰 문제가 될 수 있습니다. 그럼에도 불구하고 DBUS 방법은 Fedora 및 Ubuntu와 같은 널리 사용되는 배포판에서 기본적으로 작동합니다.

행운을 빌어요; 나는 이것이 어떻게 나타나는지 보고 싶습니다!

편집 : 발견Python에서 이 작업을 수행하는 좋은 블로그 게시물입니다.그러나 DBUS는 애플리케이션에 구애받지 않도록 설계되었으므로 페이지의 일부 값을 사용할 수 있습니다.

답변2

나는 다음을 사용하여 문제를 해결했습니다.

udisks --show-info $1 |grep -c "blank: *1"

트레이를 닫지 않고 삽입된 미디어가 비어 있는지 확인합니다.

관련 정보