어떻게 든 시스템 종료시 사용자 공간과 init-system (클래식 init sysV / upstart / systemd)이 작동하는 방식에 대한 대략적인 아이디어가 있습니다. (실제로 "정지!", "정말로 중지하십시오", "정지하기 위해 프로세스를 종료해야합니다"및 대기 중 ...
어쨌든 커널에서 시스템 종료가 어떻게 작동하는지 잘 모르고 있습니다 (확실히해야 할 일이 많이 있습니다)?
나는 커널 문서 https://www.kernel.org/doc/htmldocs/ 를 보려고 시도 했으며 심지어 NSA의 친구 검색 도구 를 사용하여 어떻게 작동하는지 알아볼 수있었습니다.
또한 나는 SE U + L을 검색했지만 아무것도 발견하지 못했습니다 (간과 했습니까?)
어쨌든이 질문은 조금 어려울 수 있지만이 Q & A 네트워크에서 더 많은 사람들이 종료시 Linux 커널에서 발생하는 일에 대한 스케치를 얻는 데 관심이 있다고 가정 할 때 대답 할 가치가 있습니다.
잠재적으로 좀 더 자세한 설명과 연결되도록 변경되었습니다.
어떤 시스템 호출과 어떤 커널 신호가 사용됩니까?
https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c 는 재부팅과 관련된 x86 사용 파일 인 것 같습니다 (이미 종료에 근접 했습니까?)
아마 여기 http://lxr.free-electrons.com/source/kernel/reboot.c#L176에 있는 스 니펫 이 설명을 제공하는 데 사용될 수 있습니다
176 지혜 177 { 178 (주) 에스엠 179 주식회사 180 pm_power_off_prepare (); 181 (주) 에이 앤티 182 * syscore_shutdown (); 183 pr_emerg ( "전원 끄기 \ n"); 184 kmsg_dump (KMSG_DUMP_POWEROFF); 185 (주) 에스엠 186} 187 EXPORT_SYMBOL_GPL (커널 _ 파워 _ 오프);
shutdown(8)
(가), 즉 사용되지 않는 -n
나는 하나의 생각 읽는 데 사용 된 유닉스 설명서의 " 시스템 종료 자신! - 핵심 장치가 ON FIRE입니다 "효과적으로 지저분한 시스템 킬 스위치하는 바닥에 흩어져있는 비트 (또는 적어도 파일 시스템이 손상된 상태)를 남길 수 있습니다-누군가가 방금 냉각 팬에 손을 넣은 메인 프레임 유형 시스템에 사용될 것이라고 생각합니다. 🕱