시스템을 종료하는 가장 빠른 방법이 있습니까?


20

아니면 shutdown -h now가장 빠른가요?

종료하기 전에 수행 된 많은 작업을 건너 뛸 수있는 syscall 또는 유사한 것을 찾습니다 (특히 실행중인 프로세스를 관리하기 위해).

기껏해야 커널 관련 솔루션을 원하고 init-middleware ( systemd또는 같은 upstart) 에 무지합니다 .

컵 / 아파치 / 펄스 오디오 등과 같은 모든 서비스를 직접 죽이는 것과 관련된 위험 ... 상관 없어요 ....

비고 : 솔루션은 소프트웨어 바이스 여야합니다. 장치에서 버튼을 누르는 것이 내가 찾는 것이 아닙니다.


8
"컵 / 아파치 / 펄스 오디오 등 모든 서비스를 직접 죽이는 것과 관련된 위험 ... 상관 없어요 ...." -> 확실합니까? 일관되지 않은 상태로 복잡한 소프트웨어를 남겨두면 다음에 소프트웨어를 사용할 때 놀라 울 정도로 놀라 울 수 있습니다. 많이 사용하지 않는 서비스 (예 : 컵, 아파치)를 비활성화하는 것을 고려해야합니다. 사용하고 싶을 때 항상 수동으로 시작하고 중지 할 수 있습니다.
goldilocks

내가 찾는 방법은 사람들이 내 PC에 액세스하지 못하게하려는 순간입니다. 종료가 지연되면 잘못 달성 할 수 있습니다. 차라리 데이터를 느슨하게하고 노출시킵니다.
humanandANDpeace

2
또한 이것을
Pandya

8
아이디어가 있습니다. 그래도 새로운 하드웨어에 대한 비용 절감을 시작하십시오.
John WH Smith 14

sudo shutdown -P 0 내가 사용하는 응용 프로그램은 열려있는 응용 프로그램에 관계없이 즉시 종료 프로세스를 시작합니다
gkmohit

답변:


30

SysRq (시스템 요청) 기능을 사용한 다음 즉시 트리거하는 것보다 훨씬 빠르지 않습니다 reboot.

이것은 커널이 이해하는 핵심 조합입니다.

SysRq 활성화 :

echo 1 > /proc/sys/kernel/sysrq

이제 재부팅으로 보내십시오.

echo b > /proc/sysrq-trigger

b -파일 시스템을 마운트 해제하거나 동기화하지 않고 시스템을 즉시 재부팅합니다.

노트 :

이것은 reboot전원이 차단 된 것처럼 작동 하지만 권장되지는 않습니다.

당신이 원하는 경우 syncumount손 전에 파일 시스템이 다음 사용

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger

또는 시스템 전원을 끄려면 다음을 수행하십시오.

echo o > /proc/sysrq-trigger

매직 키 조합

커널이 해석하는 주요 조합도 있습니다 :

Alt+ SysRq / Print Screen+Command Key

명령 키 :

R-키보드를 X에서 다시 제어합니다.
E-SIGTERM을 모든 프로세스로 보내서 정상적으로 종료되도록합니다.
I-모든 프로세스에 SIGKILL을 보내면 즉시 종료됩니다.
S-디스크에 데이터를 플러시합니다.
U-모든 파일 시스템을 읽기 전용으로 다시 마운트하십시오.
B-재부팅

Magic SysRq Key Wiki 에서 인용 :

매직 SysRq 키의 일반적인 용도는 그렇지 않은 경우 잠긴 Linux 컴퓨터를 안전하게 재부팅하는 것입니다.

  1. 홀드 다운 AltSysRq(화면 인쇄) 키를.
  2. 키를 누른 상태에서 몇 초 간격으로 다음 키를 순서대로 입력하십시오. REISUB .
  3. 컴퓨터가 재부팅되어야합니다.

이를 기억하는 방법은 다음과 같습니다.

" R EBOOT E 호흡기 I F SU tterly B의 roken"또는 단순히 단어 " 혼잡 "거꾸로 읽어보십시오.

참고 문헌

Magic SysRq Key Wiki
페도라 SysRq


11
클린 시스템을 종료하는 데 2 ​​초 미만이 소요될 수 있습니다. poweroff아치 머신을 호출하면 화면에 종료 로그가 인쇄되는 것을 볼 수 없습니다 ...
John WH Smith

두 번째 에코 전에 sync( linux.about.com/library/cmd/blcmdl8_sync.htm ) 을 실행 하면 수퍼 블록을 포함하여 버퍼가 디스크에 기록됩니다.
Arcege

b반향되지 않는 것이 좋습니다 o. b가 더 낫습니까?
humanandANDpeace

그것은 당신이 더 의미하는 바에 달려 있습니다. 이 b옵션은 매우 빠르지 만 sync디스크는 이상적이지 않지만 종료 시간을 줄이는 방법을 제공하는 많은 옵션이 있습니다. panic옵션 도 있습니다. 위키와 시행 착오를 읽고 귀하의 요구에 가장 잘 맞는 것을보십시오.
geedoubleya

잘 조여진 시스템에서는 echo o /proc/sysrq-trigger중단이 발생합니다. 시스템은 계속 켜져 있습니다. 실제로 b시스템은 사라졌습니다. 그러나 재부팅은 RAM을 유지할 수 있음을 의미 b하며, 결국 시스템을 끄는 옵션을 원합니다 . 슬프게도 이것은 o내 시스템의 옵션에서 작동하지 않습니다 . 귀하와 @Pandya에 대한 제안에 감사드립니다
humanityANDpeace

8

불쾌한 접근 방식은 shutdown -h -n now입니다.

이렇게하면 정리가 수행되지 않으므로 파일 시스템이 일관되지 않고 데이터베이스가 손상되는 등 시스템이 실제로 빨리 종료됩니다.


1
감사합니다.이 의견은 소리로 들립니다.이 -n옵션은 문서화되어 있으며 현재 버전의 종료 상태입니까?
humanandANDpeace

1
예, 표준입니다. 커널에게 모든 것을 삭제하도록 지시합니다. 이 명령은 일반적으로 정기 종료가 완료된 마지막 종료 스크립트에서 사용됩니다.
Simon Richter

7
그러나 나는 이것이 플러그를 당기는 것과 거의 동일하기 때문에 이것이 나쁜 결과를 일으킬 가능성이 충분히 있다고 강조 할 수는 없습니다.
Simon Richter

놀랍도록 간단하고 효과적입니다. 이 -n 옵션은 내가 찾던 것입니다. 질문에 답변 해 주셔서 대단히 감사합니다. 당신은 질문을하는 것이 얼마나 실망 스러운지 모릅니다. 목 수염이 당신의 질문에 대답하는 것보다 왜 틀린지 말해줍니다. 가능한 경우이 답변을 50 번 찬성했습니다. 고맙습니다.
Joshua Pech

4

일부 배포판 poweroff은보다 간단한 명령을 제공합니다 shutdown.

함께 사용하기 :

poweroff -f

디스크 동기화를 수행 한 다음 전원을 끕니다. 이는 파일 시스템이 손상되지 않도록 최소 종료를 수행하면서 훨씬 더 빠른 속도 사이에서 좋은 절충안입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.