재시작 및 systemd-logind 시 시스템 종료 구현 비교

재시작 및 systemd-logind 시 시스템 종료 구현 비교

이 질문은 호기심에서 나온 질문이기도 하지만 나 자신도 명쾌한 답을 찾지 못해서 나온 질문이기도 하다.

내가 읽고이 답변은 커널이 시스템을 종료하는 방법을 설명합니다.. 전반적으로 꽤 명확하다고 생각합니다. reboot.cLXR에서 코드를 확인하세요 .kernel_power_off해당 기능은 restart.c에 있습니다.호기심이 자극되었습니다. 불행하게도 LXR이 위치를 찾는 데 어려움을 겪고 있는 것 같습니다.기계 관련 코드~을 위한machine_power_off, 이 기능이 무엇을 하는지, 어떻게 하는지 잘 모르겠습니다.

문제는기능 정의일반적으로 machine_power_off특정 클래스의 기계(또는 제조업체)에 고유한 일부 바이너리 blob(아마도 독점 펌웨어?)를 기반으로 하거나 일반적으로 어셈블러 또는 C로 작성됩니까?

이제 2014년 4월부터 2021년 7월까지 빠르게 진행됩니다. 2014년 4월 답변은 제게는 이해가 되지만 이 답변이 준비된 이후로 많은 것이 변경되었습니다. 커널은 여러 번 수정되었으며 systemd많은/대부분의 Linux 배포판의 기본 부분이 되었습니다.

내가 이해하는 한, halt/ shutdown는 이제 다음으로 표현됩니다.systemd 로그인관리자(?!): systemd-logind.service. 보기 man logind.confman systemd-logind.service공개 HandlePowerKey=, HandleLidSwitchExternalPower=옵션 및 관련 poweroff작업 - 이러한 옵션 이름은 과 유사성을 나타내지 reboot.c만 분명히 다릅니다. 업스트림 구현 제안에 더욱 주의를 기울이십시오.systemd-logind용 D-Bus 인터페이스이제 시스템 종료에 중요한 역할을 합니다. 지금 이 순간에도 노력하고 있어요"점들을 이으세요"사이.reboot.csystemd-logind.service

동시에,내 배포판이 reboot.c코드를 보존하는 것 같습니다. 내 OS에서 여전히 사용되기 때문에 코드가 유지 관리된다고 가정하면 systemd또 다른 질문이 생깁니다.

질문: systemd시스템 전원을 끄는 데 사용된 기반 옵션이 결국 실행됩니까 reboot.c? 그렇지 않다면 의 역할은 무엇입니까 reboot.c?

관련 정보