정전 시 Linux 종료 트리거

정전 시 Linux 종료 트리거

나는 쓰기 완료 시간을 제공하고 외부 전원이 제거될 때 파일 시스템의 손상을 방지하는 슈퍼커패시터 하드웨어가 포함된 임베디드 Linux 시스템(현재 Angstrom을 실행 중)을 가지고 있습니다. 아키텍처는 ARM이고 SOC는 Freescale iMX6Q입니다.

외부 전원의 존재를 모니터링하는 GPIO 입력이 있습니다.

정전 처리를 위해 이 입력을 기존 로직에 연결하는 가장 좋은 방법은 무엇입니까? SIGPWR실행 중인 모든 프로세스에 직접 브로드캐스트 해야 합니까 ? 그냥 systemd? 에 뭔가 쓰시겠어요 /dev/initctl? 커널 자체를 보내려면 다른 작업을 수행해야 합니까 SIGPWR?

장치 트리에서 구성할 수 있는 하드웨어 정전 입력에 대한 기존 메커니즘이 있습니까? 아니면 sysfs gpio 파일을 폴링하는 사용자 모드 데몬(우선순위가 높음)이 최선의 접근 방식입니까?

이 이전 질문배터리 백업의 장점은 지적되지만 새로 고침 코드 작성 시 정전 경로를 트리거하는 방법에 대해 자세히 설명하지 않고 "충분히 오랫동안 전원을 유지하는 것"에서 중지하십시오. (임박한 정전으로 인해 시스템은 정상적인 프로세스 종료에 시간을 낭비해서는 안 되며 데이터 무결성을 보호하는 작업만 수행해야 합니다. 특히 로그 종료 작업은 업데이트를 포함하여 쓰기를 수행하는 동안 손상 가능성을 높이므로 피해야 합니다. 최악의 조건에서 마모 평준화 데이터를 얻으십시오. 논의하다.)

관련 정보