여러 사용자가 시작하고 일부 직렬 장치를 사용하여 많은 작업을 수행하는 서비스가 있습니다. 가장 먼저 수행하는 작업 중 하나는 관심 있는 직렬 장치를 검색하여 여는 것입니다. 직렬 장치는 왔다 갔다 하기 때문에 열리는 장치는 구성 가능하며 처음에는 /dev/serial/by-id를 통해 루프를 돌며 구성 패턴과 일치하는 항목을 찾습니다.
때로는 시작 시 일치하는 항목을 찾지 못할 수도 있습니다. 나중에 서버를 다시 시작하면 해당 서버를 찾습니다.
내용이 포함될 때까지 poll /dev/serial과 같은 이상한 작업을 코드에서 수행할 수 있지만 이는 투박하고 인종차별적인 느낌이 듭니다. /dev/serial/by-id 설정이 완료될 때까지 서비스 시작을 연기하고 싶습니다. 내가 어떻게 할 수있는?
시스템 시작 시 해당 항목이 없으면 서비스는 해당 항목 없이 계속 실행될 것으로 예상됩니다. 따라서 탐지가 언제 완료되는지 알아야 합니다. 탐지가 나타날 때까지 계속 반복할 수 없습니다. 어쩌면 그렇지 않을 수도 있습니다.
답변1
아무도 이 작업을 수행하는 방법을 모르는 것 같았고 결국 나는 /dev/serial/by-id를 주기적으로 확인한 다음 거기에서 찾은 내용을 수집하는 중단 스레드를 작성하게 되었습니다. 효과가 있지만 그렇게 해야 한다는 것이 귀찮습니다. 누군가가 알고 있다면 더 나은 방법에 여전히 관심이 있습니다.