systemd / init가 없을 때 전원을 끄는 방법 (예 : init = / bin / bash 사용)? poweroffDBus를 통해

poweroffDBus를 통해 시스템에 연결할 수 없다고 불평합니다 (물론 살아 있지는 않습니다). 나는 않았다 sync다음 kill $$전원 끄기에 커널을 큐 것 죽어 1 PID 생각,하지만 커널 패닉을 일으키는 원인이되었다. 그런 다음 전원 버튼을 눌러 전원을 강제로 끕니다.

이 시나리오에서 전원을 끄는 가장 적절한 방법은 무엇입니까?



답변

마운트 한 파일 시스템을 마운트 해제하십시오. 루트 파일 시스템은 특별한 경우입니다. 이를 위해 당신은 사용할 수 있습니다 mount / -o remount,ro. Linux에서는 umount /이전 명령으로 효과적으로 변환되기 때문에 작동합니다.


즉, 언 마운트 해제에 대해 걱정할 필요가 없습니다.

  1. 저널링이나 이와 동등한 기능을 구현하지 않는 EFI 시스템 파티션에서 사용하는 FAT와 같은 오래된 파일 시스템 또는 ext2를 마운트했습니다. 최신 파일 시스템을 사용하면 sync충분하며 다음 부팅시 파일 시스템이 매우 빠르게 복구됩니다.
  2. 파일 시스템에 쓰는 실행중인 프로세스를 남겨두고 파일을 완전히 종료하려고했습니다. 이 경우 파일 시스템을 마운트 해제하려고 시도하면 유용합니다. umount가 실패하고 남은 기록기에 대해 사용자에게 알리기 위해 사용 중 오류가 표시되기 때문입니다.

위의 중요한 부분입니다. 그런 다음을 사용하여 하드웨어 전원을 편리하게 끌 수도 있습니다 poweroff -f. 또는로 재부팅하십시오 reboot -f.

systemd의 – 특정 상당 poweroff -f: systemctl poweroff -f -f. 그러나 SysV 호환성없이 빌드 된 경우에도 poweroff -f동일한 작업을 수행 systemd하고이 명령을 지원합니다.


기술적으로 USB 하드 드라이브에는 Windows “안전 제거”또는 이와 동등한 장치가 필요하다고 기록되어 있습니다. 그러나이 요구 사항은 전원 안전 장치가 아니며 Linux는 정상적인 종료 중에는이를 수행하지 않습니다. 하드 드라이브가 회전하는 동안 플러그를 뽑으려고하는 것을 포함하여 조깅하지 말아야한다는 의미로 해석하는 것이 좋습니다. 전원이 완전히 꺼지면 드라이브 회전이 중지됩니다. 아마 멈추지 않는지 듣고 느끼거나 볼 수 있습니다 :-).


답변

아래 두 명령을 간단히 실행하겠습니다.

echo s > /proc/sysrq-trigger    <= For sync
echo o > /proc/sysrq-trigger    <= For shutdown the system

커널에서 매직 키가 활성화되었다고 가정


답변

좋아, 그래서 나에게 옵션이 있다는 것이 나에게 일어났다 exec init. 거기에서 나는 아마 나중에 할 수있을 것이다 poweroff. 그래도 더 나은 대안이 있는지 궁금합니다.


답변

효과적으로 tou는 reboot (2) syscall 을 호출하려고합니다 .

두 가지 방법으로이를 수행 할 수 있습니다.

  1. reboot -f또는을 실행 poweroff -f하면 reboot(2)직접 호출해야 합니다.

  2. 실제 Linux 가상 터미널 (GUI 터미널 에뮬레이터가 아님)을 사용하는 경우 Ctrl+ Alt+ 를 누릅니다 Delete.

일부 사용자 공간 프로그램 (일반적으로 init)으로 키보드 단축키를 비활성화 할 수 있습니다. 비활성화하면 단축키가 대신 init로 신호를 보냅니다.

위의 모든 명령은 모든 디스크를 마운트 해제하거나 읽기 전용으로 다시 마운트하고 동기화를 실행 한 후에 수행해야합니다. 그렇지 않으면 기록되지 않은 데이터가 손실 될 수 있습니다. 쉘이 유일한 프로세스 인 경우 동기화로 충분할 수 있습니다.


답변

Magic SysRq 키 ( https://en.wikipedia.org/wiki/Magic_SysRq_key )를 사용하여 컴퓨터의 전원을 끌 수 있습니다.

올바르게 종료하려면 다음을 사용하십시오 (Wikipedia에서 인용).

매직 SysRq 키의 일반적인 사용은 그렇지 않으면 잠긴 Linux 컴퓨터를 안전하게 재부팅하는 것입니다 (abbr. REISUB ). 이렇게하면 fsck재부팅시 필요 하지 않을 수 있으며 일부 프로그램은 저장하지 않은 작업의 비상 백업을 저장할 수 있습니다. [5]  
쿼티 (또는 AZERTY) 연상 기호 : ” R aising E lephants I S S O U tterly B의 o- 링”, ” R EBOOT E VEN I F SU tterly Broken “또는 간단히”BUSIER “라는 단어는 뒤로 다음 SysRq 키 순서를 기억하는 데 사용됩니다.

  • 유엔 R아 (X에서 키보드 다시 제어 할)
  • t Erminate (모든 프로세스에 전송 SIGTERM, 그들이 정상적으로 종료 할 수 있도록)
  • K ILL (모든 프로세스에 전송 SIGKILL, 즉시 종료하도록 강요)
  • Sync (데이터를 디스크로 플러시),
  • Unmount (모든 파일 시스템을 읽기 전용으로 다시 마운트),
  • 다시 Bot.

그러나 “power O ff”에 대해 마지막 B를 O (azerty / qwerty)로 대체