과거

과거

halt이들명령의 차이점은 무엇인가요 shutdown?

답변1

일반적으로 사람들이 사용하는shutdown주문하다. 종료하거나 다시 시작하기 전에 시간 지연 및 경고 메시지를 허용합니다. 이는 다중 사용자 셸 서버의 시스템 관리에 중요하며 사용자에게 가동 중지 시간을 미리 알릴 수 있습니다.

따라서 컴퓨터를 즉시 중지/종료하려면 다음과 같은 shutdown 명령을 사용해야 합니다(적어도 Linux 및 FreeBSD에서는).

shutdown -h now

또는 사용자 지정 30분 사전 경고로 다시 시작하세요.

shutdown -r +30 "Planned software upgrades"

좀 더 시간을 두고 shutdown말해요init런레벨 0(중지) 또는 6(다시 시작)으로 변경합니다. (생략하거나 하면 -h시스템 -r이 단일 사용자 모드(실행 수준 1)로 전환되어 대부분의 시스템 프로세스가 종료되지만 실제로 시스템이 중지되지는 않습니다. 여전히 관리자가 루트로 로그인된 상태를 유지할 수 있습니다.)

시스템 프로세스가 종료되고 파일 시스템이 마운트 해제되면 시스템이 자동으로 중지/종료되거나 다시 시작됩니다. 이는 다음을 사용하여 수행됩니다.halt또는 reboot명령, 변경 사항을 디스크에 동기화한 다음 실제 일시 중지/전원 끄기 또는 재부팅을 수행합니다.

Linux에서는 시스템이 종료 프로세스를 시작하지 않은 halt경우 의도한 작업을 직접 수행하는 대신 자동으로 명령을 호출합니다. 하지만,rebootshutdownFreeBSD와 같은 시스템에서, 이 명령은 먼저 작업을 기록합니다.wtmp그 다음에프로세스를 종료하거나 파일 시스템을 먼저 마운트 해제하지 않고 직접 일시 중지/다시 시작을 수행하십시오.

답변2

과거

1980년대 BSD에는 halt, reboot, , 가 있었습니다 shutdown. 시스템 5 UNIX에는 BSD 호환 도구 세트가 있습니다. 하지만 그 자체로 다른 shutdown명령이 있습니다. 그리고 전혀 없거나 halt전혀 reboot없습니다. (일부 System 5 변형에는 SCO XENIX 와 같은 것이 있습니다 haltsys.)

BSD haltreboot명령은 저수준이고 강력하며 간단합니다. 이것인정 있는BSD 시스템을 종료하는 방법은 사용자에게 메시지 보내기, 서비스 종료, 로그 항목 쓰기, 로그인 비활성화 등 shutdown예상되는 모든 작업을 수행하는 명령 입니다.wall

shutdownBSD는 " exes halt/ "와 시스템 5 세계에서 주의해서 사용해야 한다는 통념의 근원이지만 , / 는 단지 편리한 약칭일 뿐이 reboot라는 반대 습관이 학습되었습니다. : "BSD 호환 팩"과 다르지 않습니다 . 그들 모두는 결국 그렇게 했습니다 .haltreboot/usr/ucb/haltshutdown -hinit 0

추가 읽기

오늘

오늘날 우리는 다양한 시스템 관리 도구 세트를 보유하고 있습니다. BSD는 1990년대 AT&Tism을 제거했음에도 불구하고 여전히 도구 세트를 보유하고 있습니다. Miquel van Smoorenburg는 1992년에 Linux init+ 및 관련 도구를 다시 작성했으며 rc실제로는 UNIX System 5의 소프트웨어는 아니지만 사람들은 이를 "System 5 init"라고 부릅니다 init. 게다가체계,갑자기 나타나다, 그리고간식, 각각은그들만의 깨달음, halt, reboot, fasthalt, fastboot등.

도구 세트도 끊임없이 발전하고 변화하고 있습니다. 1980년대 운영 체제에는 존재하지 않았던 명령이 이제 존재합니다 poweroff. 왜냐하면 대부분의 최신 기계의 CPU는 자신의 전력을 제어할 수 없었기 때문입니다. 특히 Linux 도구 세트는 BSD 명령을 얻었지만 UNIX System 5의 BSD 호환성 도구와 마찬가지로 정확히 동일하게 작동하지 않으며 대부분이 평면화되었습니다.

halt이러한 평탄화를 통해 우리는 다음과 같은 지점에 이르렀습니다 shutdown.최대같은. 그러나 세부 사항은 도구 세트마다 다르며 각 도구 세트의 메커니즘도 약간 다릅니다.

또한 이 명령 세트가 호환성 옵션으로 가득 차서 이제 사람들이 nosh의 매뉴얼 페이지에 쓴 것처럼 및 와 같은 모순된 명령을 컴퓨터에 발행할 수 있다는 다소 어색한 입장 reboot --halt에 놓이게 됩니다 . 그리고 명령. ☺poweroff --reboothaltfasthaltrebootfastbootpoweroff

시스템 도구 세트

halt, reboot, poweroff, telinitshutdown하나의 프로그램에 모두 포함. 실제로는 systemd 자체 프로그램입니다 systemctl. 여기에는 여러 개의 명령줄 파서, 이러한 명령에 대한 다양한 명령줄 구문 및 자체 구문이 있지만 대부분 내부적으로 하나의 코드 경로로 유입됩니다. 명령 옵션을 사용하여 halt작업을 트리거하는 것과 shutdown명령 옵션을 사용하여 동일한 작업을 트리거하는 것에는 차이가 없습니다.

systemd는 고려하지 않습니다구조 모드(이것은 systemd 사람들에 의해 이름이 변경되었습니다.단일 사용자 모드)은 시스템 종료 상태가 되며 이러한 명령을 사용하여 해당 상태에 도달할 수 없습니다. 옵션이 없는 shutdown now것과 같습니다 poweroff.

추가 자료:

BSD

BSD는 1980년대의 의미를 대부분 유지하고 있습니다. halt그러므로 shutdown매우아니요해당 도구 세트의 등가물. 별도의 프로그램 halt이며 reboot낮은 수준, 직접적, 강렬한 상태를 유지합니다. 그리고 별도의 프로그램이기도 shutdown한 는 종료 예약, 메시지 작성, 작업 로깅, 로그인 비활성화 등과 poweroff같은 모든 유용한 작업을 수행할 수 있습니다 .wall

BSD 도구 세트에서는 shutdown/ 전통적으로 최종 시스템 상태 변경을 수행하기 위해 / poweroff호출을 끝냅니다 . 일반적으로 " execs / "는 실제로 NetBSD와 OpenBSD에서 여전히 작동한다고 믿어집니다 (현재는 종종 부정확함). 그러나 FreeBSD/TrueOS/DragonFlyBSD에서는 이 옵션을 사용하는 경우에만 이런 일이 발생합니다. 이러한 BSD에서는haltrebootshutdownhaltreboot-o둘 다이 절차 중대개최종 시스템 상태 변경은 프로세스 #1에 다양한 신호( , 및 )를 전송하여 INT이루어집니다 . USR1하다USR2init모두이러한 시스템의 시스템 상태 관리.

이들 모두에서 None 옵션은 , 또는 와 shutdown now동일하지 않습니다 . BSD로의 전환haltrebootpoweroff단일 사용자 모드에서 전환할 수 있습니다.뒤쪽에도착하다다중 사용자 모드.

추가 자료:

  • shutdown. 시스템 관리자 매뉴얼. NetBSD 매뉴얼 페이지. 2011년 11월 4일.
  • reboot,halt. OpenBSD 매뉴얼 페이지. 2016년 9월 3일.
  • shutdown. FreeBSD 매뉴얼 페이지. 2016년 9월 21일.
  • reboot, halt, fastboot,fasthalt. FreeBSD 매뉴얼 페이지. 2017년 3월 19일.
  • shutdown. 시스템 관리자 매뉴얼. DragonFlyBSD 매뉴얼 페이지. 2016년 9월 29일.
  • reboot, halt, fastboot,fasthalt. 시스템 관리자 매뉴얼. DragonFlyBSD 매뉴얼 페이지. 2016년 9월 29일.

스낵 도구 세트

nosh 시스템 관리 도구 세트에서 , halt, fasthalt, poweroff, fastpoweroffrebootfastboot모두 하나의 프로그램입니다. 일반적으로 단순히 다음 shutdown과 연결되는 이전 버전과 호환되는 심입니다.반대지혜를 얻었습니다. 이 옵션을 사용하면 반대쪽 --force에 연결됩니다 .system-control

따라서 --force이 "BSD/System 5 Compatibility" 명령 세트는 단지 .haltshutdownshutdown

추가 자료:

신생 도구 세트

nosh와 마찬가지로 BSD 지혜의 반대는 새로운 시스템 관리 도구 세트에서도 적용됩니다. halt, reboot및 는 poweroff모두 일반적으로 에 연결되는 프로그램입니다 . 이 옵션을 사용 shutdown하면 자체적으로 시스템 호출을 수행하게 됩니다.--forcereboot()

따라서 이 도구 세트의 명령과 명령(동등한 옵션 포함) 사이에는 차이가 없습니다(존재하지 않음) --force. 마찬가지로 시스템을haltshutdownshutdown nowhaltrebootpoweroff단일 사용자 모드끄는 대신.

추가 자료:

Linux 시스템 5+ init도구 rc세트

다시 말하지만, 이 도구 세트에서 허용되는 BSD 통념과는 달리 응용 프로그램은 및 halt이며 reboot간단히 연결됩니다 shutdown. 단, 시스템이 이미 전원이 꺼졌거나 중지된 "실행 수준" 상태에 있는 경우는 제외됩니다. 이 경우 이러한 명령은 실제로 최종 시스템 상태 변경은 다음과 같습니다. 수행. shutdown이는 차례로 에 연결됩니다 init.

다시 말하지만, 차이는 없습니다(시스템이이미대체로 닫혀 있음) 전자 haltshutdown단지 후자를 호출하기 때문입니다. 예, 다시 말하지만 시스템을 시작하는 데 필요한 옵션이 없습니다 shutdown now( halt, , 모두 옵션이 설정되어 있으므로 궁극적으로 호출할 수 reboot없음 ).poweroff단일 사용자 모드끄는 대신.

답변3

나는 이것이 당신이 사용하고 있는 UNIX/Linux 버전에 따라 어느 정도 달라질 것이라고 생각합니다. Centos(및 다른 최신 Linux에서도 가능)에서는 정지 호출을 종료합니다(만약 그렇지 않은 경우).런레벨0 또는 6) 이렇게 하면 시스템이 완전히 종료됩니다. Solaris 10에서는 일시 중지가 훨씬 더 심각합니다. 단지 디스크 캐시를 플러시하고 시스템 전원을 끄는 것뿐입니다. 스크립트를 실행하거나 종료하려고 시도하지 않습니다.단일 모드 기능시설.

답변4

AWS EC2를 사용하는 경우: AWS에서shutdown 멈추다예를 들어,halt 종료그것.

관련 정보