당신이 정말로 특별한 이유에 의해 강요받지 않으면 다음을 수행하지 않는 것이 좋습니다.
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
거칠고 잔인하며 전원 코드를 뽑는 것과 비슷한 것으로 간주 될 수 있습니다 ...
올바른 방법 입니다 shutdown -h now
함께 sudo
필요시 전에.
어쩌면 나는 합법적 인 방법으로 말해야한다 . 아래 또는 더 나은 tl; dr 참조.
더 많은 단어들 , 일명 이야기 1 장
처음에는 시작이었고 끝까지 끝날 것입니다.
전체 리눅스 는 init 의 사랑에 찬 관심 에 의존한다 [ 1 ] [ 2 ] . 그럼에도 불구하고 어느 정도의 배고픔이 없다면, 좋은 주님 루트 사용자 는이 사랑을 배신 하고 논쟁의 여지가없는 ( ) 명령으로 갑자기 초기화 될 수 있는 시간이있었습니다 . ( 에티켓은 사용자 가 전에 호출 할 수, 공작 및 후작을 규정 합니다 ). kill
-9
sudo
그런 다음 몇 가지 마법사 (의 책에서 초기화 보호 할 수있는 매력을했다 man 2 init
)
프로세스 ID 1, init 프로세스로 보낼 수있는 유일한 신호는 init가 명시 적으로 신호 처리기를 설치 한 신호입니다. 이것은 실수로 시스템이 다운되지 않도록하기 위해 수행됩니다.
(우리의 간첩 신고 [ U1을 ] 초기화가 처리 할 것을 1 HUP 6 ABRT 11 SEGV 15 TERM (30) PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
소위 좋은 주님의 루트 사용자 소식을 배우고에서 명령을 변경 kill -ABRT 1
하거나 kill -SEGV 1
그 보통을 생성 커널 패닉과 코어 덤프.
init 가 실행되는 첫 번째 프로세스 이므로 PID 번호 1 [ 2b ]을 사용 하기 때문에 작동합니다 .
이것은 안전하지 않으며 현명하지 않으며 나쁜 징조와 저주가 있다고 생각하지만 실제로 손을 대고 플러그를 뽑을 수 없다면 ...
저주 : 로그에 쓰지 않고 모든 프로세스를 종료하지 않고 종료를 기다리지 않고 HDD에 올바르게 기록하지 않아 inode를 올바르게 업데이트하지 않으며 파일 시스템을 마운트 해제하지 않습니다. 전원 코드를 뽑거나 랩톱의 경우 배터리를 분리하는 것과 비슷하다고 말했듯이 그래픽 창 및 쉘 기록 옵션과 상상력을 능가하는 옵션을 저장하지 않아도됩니다.
올바른 방법
"비는 노비스, 도미는, 비 NOBIS, SED는 NOMINI TUO 다 gloriam.", 템플러는 모토 기사입니다. 합법적 인 (정확한) 방법을 사용하는 것이다 [ 3 ]
shutdown
sudo shutdown -h now
시스템 종료는 시스템을 안전하게 중단시킵니다. 로그인 한 모든 사용자에게 시스템이 다운되고 있다는 알림이 표시됩니다.
하지만 -h now
그들 과 함께 할 시간이 충분하지 않을 것입니다 ...
좀 더 말하면 , 일명 이야기 2 장
옛날 옛적에 몇 가지 논리적 인 단계가 유닉스 사람들에게 하늘에서 느껴졌습니다.
시스템 프로세스가 종료되고 파일 시스템이 마운트 해제되면 시스템이 자동으로 정지 / 전원 끄기 또는 재부팅됩니다. halt 또는 reboot 명령을 사용하여 변경 사항을 디스크에 동기화 한 다음 실제 중지 / 전원 끄기 또는 재부팅을 수행합니다. [ 4 ]
사실, 요즘, 우리는 세 가지 모이라이의 존재를 더 이상 신뢰하지 않는다 [ 5 ] 의 리눅스 세계 , reboot
, poweroff
및 halt
[ 6 ] 다음 현대 과학 의 ls -l $(which poweroff halt reboot)
와의 일 man reboot
이 어두운 시대에 스프레드 새로운 빛과 우리를 공개 모든 옵션을 구문 분석하는 명령이 하나뿐이므로 명령 이름과 모순되는 작업을 자유롭게 요청할 수 있습니다! ( halt -p
또는 reboot -p
대 poweroff
, shutdown -r
대 reboot
...)
이제 모두가 모두를위한 명확하고 아늑한 될 듯, 소문이 주장 [ 7 ] 에 있음을 지하 의 systemd 도구 세트 [ 8 ] 혁명이 전체 알지 못하고 떠나는 하였다 overworld을 . 이전 버전과의 호환성 심 덕분에 재부팅, 전원 끄기, 중지 [ 6 ] , 심지어 telinit [ 9 ] 및 종료 [ 3 ] 도 이미 새로운 왕 systemctl [ 10 ]에 묶여 있음을 전혀 알지 못했습니다 .. 더 이상 숨 을 쉬지 않기 때문에 JdeBP The Bard [ 9 ] 의 원래 목소리에서 모든 이야기를 들어주십시오 .
당신이 우분투 숭배의 추종자 들이라면, 당신은 여전히 그 모든 주장들에 대해 한동안 알고있을 것입니다 [ 11 ] .
의 중간 지구는 halt -f
, init
, telinit
, systemctl
빠르고 정확한보다하지만, 마찬가지로 현명한 해결책을 검색.
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
시스템 상태에 있는지 여부에 따라 올바른 모든 shudown 절차를 수행하지 않고 컴퓨터를 중지 할 수 있어야합니다 (더 빠름).
halt -f
: 옵션 지정-f
(당신이 필요로하는 것을 참고 -f
로, 위의 명령으로 종료 절차를 피하기 위해를) sudo poweroff -f
또는 어쩌면에 sudo reboot -f -h
. 실제로 종료를 호출하지 않도록 man reboot
옵션 -f
을 지정해야 할 필요성에 대해 읽을 수 있습니다 .
--force 또는 호출 레벨 0 또는 6에서 호출되면이 도구는 reboot (2) 시스템 호출 자체를 호출하고 (REBOOTCOMMAND 인수가 전달 된 상태) 시스템을 직접 재부팅합니다 .
그렇지 않으면 REBOOTCOMMAND 인수를 전달하지 않고 적절한 인수로 shutdown (8) 도구 를 호출합니다 .
-f, --force
shutdown (8)을 호출하지 않고 대신 name에서 예상되는 실제 작업을 수행합니다 .
또한 telinit
[ 2b ] (또는 init
직접)를 사용할 수 있습니다
sudo telinit 0 # or 6
init에게 런레벨을 바꾸라고 말하지만 ... 그렇다면 왜 직접 죽이지 않습니까?
체계화 된 현명한 이중 옵션을 사용할 수 있습니다 --force --force
systemctl --force --force poweroff
systemctl 매뉴얼에서 읽기 [ 10 ]
-f, --force
enable과 함께 사용하면 기존의 충돌하는 심볼릭 링크를 덮어 씁니다. , 또는 kexec
와 함께 사용하는 halt
경우poweroff
reboot
모든 장치를 종료하지 않고 선택한 작업을 실행하십시오. 그러나 모든 프로세스가 강제로 종료되고 모든 파일 시스템이 읽기 전용으로 마운트 해제되거나 다시 마운트됩니다. 따라서 즉각적인 재부팅을 요청하는 과도하지만 비교적 안전한 옵션입니다. 이러한 작업에 --force를 두 번 지정하면 프로세스를 종료하거나 파일 시스템을 마운트 해제하지 않고 즉시 실행됩니다. 경고 : 이러한 작업 중 하나에 --force를 두 번 지정 하면 데이터가 손실 될 수 있습니다.
Ps> 테일 JdeBP The Bard [ 7 ] 의 변형에 대해 영감을 얻으십시오 .