"sudosync"를 실행하고 전원이 꺼지면 내 시스템에 위험합니까?

"sudosync"를 실행하고 전원이 꺼지면 내 시스템에 위험합니까?

저는 Ubuntu를 실행하고 있는데 가끔 종료하는 데 시간이 좀 걸립니다. 간단히 말해서 GNU/Linux는 실행 중인 모든 프로세스를 중지하고 파일 시스템 로그를 플러시한 다음 전원을 차단하려고 시도합니다. 내 추론은 전원이 꺼지면 RAM에 보관된 모든 데이터가 손실되므로 프로세스가 어쨌든 죽기 때문에 시스템에서 프로세스를 수동으로 종료할 필요가 없다는 것입니다. 실행 한 다음 전원을 끄는 sudo sync것이 shutdown -h now적절한 종료( )에 대한 안전하고 훨씬 빠른 대안입니까, 아니면 하드웨어/보안 위험이 있습니까?

답변1

이렇게 하면 sudo sync애플리케이션에서 기록했지만 메모리 버퍼에 남아 있는 데이터가 디스크로 플러시됩니다. 그게 전부입니다. 시스템이 제대로 종료되지 않아 데이터 손실 및 기타 사고가 발생할 수 있습니다. 이는 치명적인 것은 아닙니다. 정전이 발생하는 것으로 알려져 있지만 피하는 것이 가장 좋습니다. 적절한 종료가 수행되는 작업은 다음과 같습니다.

  • 세션이 곧 종료될 예정임을 애플리케이션에 알립니다. 애플리케이션에서 종료를 확인하라는 메시지를 표시하고 파일에 긴급 저장을 수행할 수 있습니다. 또한 누적될 임시 파일을 삭제할 수도 있습니다.
  • 네트워크 연결을 올바르게 종료하세요. 연결이 갑자기 끊어지면 상대방은 한동안 귀하의 컴퓨터가 사라진 것을 인식하지 못하고 더 이상 수명이 없는 연결로 계속 데이터를 보내거나 해당 연결에서 데이터를 수신하려고 시도할 것입니다. 컴퓨터가 꺼져 있습니다). 컴퓨터가 다시 시작됩니다).
  • 종료 중에 발생한 상황을 확인하기 위해 로그 항목이 기록됩니다. 이는 문제가 발생하여 조사해야 할 경우에 유용합니다.
  • 모든 파일 시스템을 마운트 해제합니다. 이는 파일 시스템이 깨끗한 것으로 표시됩니다. 종료하는 동안 약간의 시간을 다음 시작 시 더 오랜 시간 동안 교환하고(그러나 인간 규모에서는 여전히 작음 1,2 ) 버그가 발생할 위험이 낮습니다(갑자기 실패 상황이 완전히 정상적인 상황처럼 동작하지 않기 때문). 테스트) 수술).

¹ RAID 볼륨에 대해 가능한 예외: RAID 볼륨을 확인해야 하는 경우 몇 시간이 걸릴 수 있습니다. 이 작업은 백그라운드에서 수행되므로 차단되지 않지만 성능 저하가 발생합니다. ²시간이 오래 걸리는 오래된 비저널링 파일 시스템(예: ext2)
제외FSCK완전히 제거되지 않은 경우.

답변2

아니요, 일반적으로 말하면 이는 안전하지 않습니다. sync보류 중인 데이터(현재 버퍼에 있는 쓰기 작업의 데이터)를 디스크에 씁니다. 그러나 애플리케이션을 닫지 않은 경우 애플리케이션에 아직 작성되지 않은 데이터가 남아 있을 수 있습니다.

구성 파일이 시작될 때 읽고 프로그램이 종료될 때 이를 쓰는 GUI 프로그램을 상상해 보십시오. GUI에서 설정을 변경하면 sync애플리케이션이 아직 이 데이터를 쓰지 않았기 때문에 도움이 되지 않습니다.

또 다른 예는 토렌트 클라이언트입니다. A는 sync최신 데이터를 디스크에 기록하지만 오버레이 네트워크와의 연결을 끊지는 않습니다. 다른 쪽 끝에서 연결 시간이 초과되도록 하는 것은 무례한 일이며, 가능하다면 오버레이에 떠날 것임을 알려야 합니다.

일반적으로 프로그램을 적절하게 종료할 수 있는 기회를 주어야 합니다. 하지만 어떤 경우에는 차이가 없습니다. 그러나 파일 시스템은 여전히 ​​다음과 같이 표시될 수 있습니다.더러운올바르게 제거되지 않은 경우.

참고 사항: sync사용자 권한으로 호출할 수 있습니다.

관련 정보