halt
저는 Raspberry Pi에서 juice4halt(소형 슈퍼커패시터 UPS)를 사용하고 있지만 너무 오래 지속되면 저전압으로 인해 시스템의 전력이 손실된다는 사실을 발견했습니다 .
그래서 내 목표는 가능한 한 빨리, 바람직하게는 5초 내에 시스템을 종료하는 것입니다.
내 생각은 이 작업을 수행하고 중요한 항목만 영구 저장소에 저장하는 스크립트를 갖는 것입니다.
sync
sudo service mysql stop
sync
halt -f
내 질문은 다음과 같습니다
1) 이거 안전한가요? 변경 사항이 동기화될 때까지 기다리 나요 sync
, 아니면 동기화가 호출되어 halt -f
중단되나요?
2) 모든 것이 제대로 작동하는지 디버깅/확인하기 위해 아직 디스크에 기록되지 않은 버퍼가 있는지 보여주는 명령이 있습니까?
시스템: Linux ras3 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux
답변1
실행하는 명령은 병렬이 아닌 하나씩 실행되므로 동기화가 완료된 후에만 중지가 실행됩니다.
거기 &
에 추가하면sync
sync &
halt - f
동기화는 백그라운드에서 실행되며 일시 중지가 동시에 실행되므로 시간 내에 완료되지 않습니다.
전체적으로는 Pause를 호출하기 전에 동기화를 완전히 수행하는 것이 안전합니다.
노트: 동기화를 수동으로 호출하는 것은 일반적이지 않습니다. 대부분의 경우, 이 명령은 Linux 커널을 불안정하게 만들 수 있다고 의심되는 다른 명령을 실행하기 전에 또는 뭔가 나쁜 일이 일어날 것이라고 생각하는 경우(예: Linux 드라이버의 배터리가 곧 방전될 예정인 경우) 노트북에서 실행됩니다. 시스템을 완전히 종료할 시간이 없습니다.
시스템을 중지하거나 다시 시작하면 운영 체제는 필요에 따라 메모리의 데이터를 영구 저장소와 자동으로 동기화합니다.