UPS 없이 노트북/데스크톱의 정전을 감지할 수 있습니까? 분명히 UPS가 없는 컴퓨터는 적어도 배터리 플러그를 뽑거나 제거한 직후에 종료됩니다. 그러나 커패시터/인덕터가 완전히 고갈되어 무언가를 할 수 있는 기회가 짧아지기 전에 코어가 전력 손실을 알아차릴 수 있다고 생각합니다.
적절하게 구성된 UPS가 있으면 체계적으로 종료할 수 있도록 UPS 가 powerd
전송될 것이라는 것을 알고 있습니다. UPS가 연결되어 있지 않은 경우에 관심이 있으므로 분명히 최대 1개만 존재합니다.SIGPWR
init
매우닫는 창이 짧습니다. 내가 정말로 원하는 것은 정전에 대해 알아볼 수 있도록 로그 파일에 단일 타임스탬프(또는 실패한 문자열)를 기록하는 것입니다.
커널이 모든 프로세스에 이를 전송한다고 생각하기 때문에 이것이 실제로 도움이 될지 의심스럽습니다. SIGPWR
이것이 제 마음속에 가장 먼저 떠오르는 것입니다. 커널을 업데이트하기 위해 일부 제어 라인이나 파일을 폴링할 수 있을까요? 아니면 그냥 망한 것일 수도 있는데, 솔직히 말해서 정확히 내가 예상했던 대로였습니다.
답변1
평균 100W 데스크톱 컴퓨터의 경우 외부 680uFx400V 커패시터 배터리라도 사용 시간이 약 0.5초 정도로 매우 짧습니다. 내부 PSU 캡을 사용하는 경우 더 적습니다. 당신이 정말로 달성하고 싶은 것은 무엇입니까? 로그 파일에 타임스탬프를 쓸 수 있더라도 여전히 sync() 루프를 수행하거나 수동으로 sync() 호출을 해야 하며, 운이 좋지 않고 컴퓨터가 대기 중인 다른 디스크를 덤프하느라 바쁘다면 버퍼 - 당신은 아웃입니다.
정전을 감지해야 하는 경우거의 믿을만하다, 그런 다음 시작 시 플래그 파일을 터치하고 정상적인 종료 시 삭제하는 것이 좋습니다. 이 파일이 있으면 시스템이 완전히 종료되지 않았음을 알 수 있습니다. 그러나 다른 오류, 주로 커널 패닉과 같은 소프트웨어 오류로부터 사용자를 보호할 수는 없습니다.
답변2
일부 기계에는 종료용으로 설계된 단기 배터리가 함께 제공됩니다(적어도 AT&T 3B 시리즈는 그렇습니다. IIRC는 일부 IBM RS/6000-pSeries도 마찬가지입니다). 이러한 기계에서는 SIGPWR
전원이 꺼지고 실제로 사용할 수 있을 때 신호가 전송됩니다. 요즘은 그리 많지 않습니다.