Unix / Linux 서버를 올바르게 종료 또는 재부팅하는 방법


11

유닉스 / 리눅스 서버를 끄는 올바른 방법은 무엇입니까?

인터넷 검색을 통해 다음과 같은 내용을 배웠습니다.

shutdown : 매개 변수 -h를 중지하거나 매개 변수 -r을 사용하여 재부팅해야합니다.

중지 : 컴퓨터를 중지합니다 (프로세서를 중지합니까? 이렇게하면 컴퓨터의 전원이 물리적으로 꺼 집니까?). init0이 아닌 경우 shutdown을 호출한다고 생각합니다. 그렇지 않으면 중단됩니다.

reboot : init6이 아닌 경우 shutdown을 호출하고 그렇지 않으면 컴퓨터를 재부팅합니다.

모든 것이 정확하다면, 내가 알아낼 수없는 유일한 것은 정확히 '정지'한 것입니다. 그냥 프로세서를 멈추고 컴퓨터를 물리적으로 끄지는 않습니까? 컴퓨터의 "전원을 끄는"방법은 무엇입니까?

감사

답변:


13

shutdown -h now대부분의 시스템에서 컴퓨터를 종료하지만 구현에 맡겨집니다. 사용 -P확실히하고 전원 끄기에 -H확실히 중단. 이것이 시스템을 종료하는 것이 좋습니다 방법입니다. 모든 적절한 스크립트를 실행합니다.

haltwithout -f는 위의 종료를 호출하므로 reboot기본적으로 별칭입니다.


나는 / sbin / shutdown -h (-r)의 큰 팬입니다. "halt"를 사용하는 것은 항상 나를 무서워했습니다.
RateControl

1
Thoreau는 또 다른 장점을 제시합니다. 중요한 시스템 명령을 명시적인 경로 (예 : / sbin / shutdown)로 호출하는 습관을 들여야합니다. 시스템이 손상되어 알지 못하는 경우이를 방지 할 수 있습니다.
Ryan Fisher

1
mystikphish : 그 습관을 받아 들일 것입니다. 그는 좋은 지적을 가지고 있지만, 전기가없는 한 방에서 자신의 모든 시간을 보낸다면 일반적으로 IT에 대한 조언을 믿을 지 모르겠습니다.
Kyle Brandt

그래도 손가락에
얽힌

@Kyle Brandt, 좋습니다.
Joseph Kern

3

리눅스에서 난 항상 사용했습니다 reboothalt나는 또한 찾을 사람들이 알고 있지만, halt무서운합니다. halt(8)일종의 이유는 다음과 같습니다.

이전 sysvinit 릴리스에서는 재부팅 및 정지를 직접 호출해서는 안됩니다. 중지 및 재부팅시 릴리스 2.74부터 시스템이 실행 레벨 0 또는 6에 있지 않으면 shutdown (8)을 호출합니다. 이는 중지 또는 재부팅시 현재 실행 레벨을 찾을 수없는 경우 (예 : / var / run / utmp가 그렇지 않은 경우)를 의미합니다. 올바르게 초기화되었습니다) 종료가 호출됩니다. 원하는 것이 아닐 수도 있습니다. 강제 정지 또는 재부트하려면 -f 플래그를 사용하십시오.

sysvinit 2.74는 1998 년 3 월 17 일 21:53입니다. :)

전원을 끄는 방법에 대한 질문에 대해서는 poweroff또는을 사용할 수 있습니다 halt -p. 대부분의 최신 Linux 시스템은 전원을 켜 halt거나 끄는 것 같습니다 shutdown -h.


솔라리스는 여전히 '중지'가 무서운 일을하는 군중 속에 있습니다.
Karl Katzke

3

나는 halt기억하기 위해 더 적은 매개 변수를 사용 합니다.

누군가 실수로 잘못된 서버를 중지하지 않도록 가상 Molly Guard 를 개발했습니다 . 그것은 몇 차례 나를 구해주었습니다. molly-guard우분투에 포장되어 있습니다.


1
누군가가 molly-guard가 어떻게 작동하는지 궁금해하는 경우를 예로 들면 다음과 같습니다. guillaume.segu.in/blog/home/118/…
Marie Fischer

1

나는 일반적으로 (물론 루트 사용자로) 사용합니다 :

 init 0

시스템 전원을 끕니다. 런 다운 스크립팅을 수행합니다.

 init 6

시스템을 중단시키고 자동으로 재부팅하도록합니다. 또한 런 다운 스크립팅도 수행합니다.


1
또한 중지는 "stop"매개 변수를 사용하여 모든 initscript를 실행합니다.
hayalci

1
어떤 시스템에서 제대로 종료되지 않습니까?
asjo

2
위의 두 의견을 바탕으로 중단 된 의견을 제거하기 위해 메모를 편집했습니다. 그러나 FreeBSD 7.2에서 확인했으며이 두 시스템에서 간단한 중지 명령을 실행하는 Solaris 10 5/2009 x86은 표준 런 다운 시퀀스를 사용하지 않습니다. 그러나 Centos 5.3, OpenSUSe 11.1 및 Fedora 11에서 정지 명령 DOES는 표준 런 다운 시퀀스를 사용하며 기본적으로 init 0과 같은 역할을합니다. FYI ....
mdpc

0

여기에 주목할 가치가 있습니다.

Solaris는 "shutdown -y -i5 -g0"을 종료하거나 "shutdown -y -i6 -g0"을 재부팅해야합니다. Solaris에서 중지 또는 재부트는 종료하기 전에 경고 또는 유예 기간을 제공하지 않는 것이 허용되는 경우에만 사용해야합니다. 종료하기 전에 디스크 시스템을 마운트 해제하지 않으면 디스크 시스템에 혼란을 줄 수 있습니다. '알고있다?

매일 터치하는 운영 체제에 가장 적합한 절차를 채택하는 것이 가장 좋습니다. 따라서 실수로 오전 2시에 자동 조종 장치에 손가락을 대고 잘못 조이지 마십시오.

예를 들어, solaris에 'killall'을 입력하지 마십시오. 반면 리눅스에서는 일반적인 명령입니다. 'pkill'은 둘 다 동일하게 작동합니다.


0

즉시 종료하려면 다음을 입력하십시오.

shutdown -h now 

즉시 종료하고 다음을 입력하십시오.

shutdown -r now

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