CentOS를 정상적으로 다시 시작하는 가장 좋은 방법은 무엇입니까?


81

나는 항상 다음 명령을 사용했습니다.

shutdown -r now

그러나 때로는 MySQL 문제가 발생합니다.

CentOS를 다시 시작하는 가장 좋은 방법은 무엇입니까?

나는 본 적이:

reboot

halt

머신을 부드럽게 재부팅하려면 어떻게해야합니까?


3
reboot본질적으로 shutdown -r... 그래서 ... 의 별칭 입니다.
Nathan C

내 게시물이 귀하의 질문에 대답 했습니까, 아니면 다른 것을 알아야합니까?
Joffrey

여기에 댓글을 달 수 없지만 재부팅에 대한 경고를 표시하고 싶습니다. 인스턴스가 Amazon EC2에있는 경우 reboot -h를 수행하면 인스턴스가 브릭되므로 절대이 작업을 수행하지 마십시오. 대신 종료하거나 재부팅해야하는 경우 셸이 아닌 Amazon의 온라인 인터페이스를 통해 수행하십시오. 인스턴스를 브릭 킹하면 새 인스턴스와 함께 제공되는 첫 번째 볼륨을 분리하지 않고 인스턴스를 중지하고 볼륨을 분리하고 별도의 인스턴스를 생성하고 볼륨을 연결할 수 있습니다. 그런 다음 새 인스턴스로 ssh하고 이전 볼륨을 마운트하고 파일을 가져와야합니다.
kloddant

실제로 모든 파일 I / O가 동기화되도록 실행 sync: sync;하기 전에 실행 하려고 shutdown -r합니다. 나는 이것으로도 문제를 해결할 것이라고 생각합니다.mysql
user3629249

답변:


92

해당 명령 이외의 다른 것을 사용하여 서버를 다시 시작하는 더 좋은 방법은 없습니다.

  • 시스템 종료 는 가장 일반적인 방법입니다. 인수 -r와 특정 시간 (또는 ' now')을 추가하면 시스템 종료 시퀀스 후에 시스템을 중지하지 않고 재부팅합니다.
  • reboot 는 일부 하드 디스크 유지 관리 (동기화 및 / 또는 대기 모드로 설정되며 실제로는 관련이 없음)를 수행하는 래퍼 라운드 종료입니다.
  • 런레벨 0 또는 6이 아닌 경우 새 버전 reboot(> 2.74)이 시작 shutdown됩니다.
  • 대부분의 init 스크립트는 정지 를 호출 하여 utmp에 로그인 합니다.

최신 배포판에는 사용중인 명령에 관계없이 모든 작업이 포함됩니다. 기본적으로 그들은 모두 SysV (CentOS <7) 또는 시스템 (CentOS> = 7) 스크립트 의 종료 런타임을 시작합니다 (읽기 쉽도록 init 스크립트라고 부릅니다).

init 스크립트를 사용하여 단계별로 종료하면 일반적으로 실행 수준 'S'로 등록 된 모든 서비스가 중지됩니다 . CentOS의 MySQL init 스크립트와 같이 개별 init 스크립트에 시간 초과가있을 수 있습니다. stop 인수가 주어지고 데몬이 상당한 시간 내에 종료되지 않으면 스크립트는 중지하고 실패하여 종료합니다. 종료 프로세스는 아무 문제가없는 것처럼 계속 진행되며 조금 더 오래 걸리고 아마도 경고를 인쇄합니다. 결국, 모든 초기화 스크립트가 실행될 때 불가피한 일이 발생합니다. 여전히 실행중인 모든 프로세스가 SIGTERM 신호를 받고 몇 초 (2 또는 5) 후에 a를 얻 습니다 SIGKILL. 이렇게하면 시스템을 실제로 재부팅하거나 종료 하기 위해 ACPI 호출이 수행 되기 전에 나머지를 정리합니다 .

옵션 reboot과 함께 명령을 사용하는 한 가지 예외는 -finit 스크립트 실행을 건너 뛰고 시스템을 직접 재부팅합니다.

걱정의 근본 원인을 해결하는 것이 좋습니다. MySQL이 제대로 종료되지 않습니다.

종종 이것은 데몬을 안전하게 종료하기 전에 수행해야하는 엄청난 양의 작업으로 인해 발생합니다. 한때 +300.000 테이블이있는 MySQL 인스턴스가 있었으며 종료하는 데 1 시간 이상 걸렸습니다. 거대한 버퍼와 드문 I / O 가용성을 사용하는 시스템에서 비슷한 문제가 발견 될 수 있습니다.


31

다음 명령을 루트로 사용하여 Centos 6.x를 정상적으로 종료해야합니다.

shutdown -h now

서버를 정상적으로 종료하기 전에 실행중인 모든 서비스를 중지하려고합니다.

이 명령을 사용하면 mySQL 소켓 문제도 방지 할 수 있습니다.

마찬가지로, 정상적인 재부팅의 경우 :

reboot -h now

비슷한 질문에 대한 이전 답변을 여기에서 읽을 수 있습니다.

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket


7
나는 당신이 shutdown -r now또는 아마도 그냥 의미하는 것 같아요 reboot. 이 reboot명령에는 -h옵션 이 없습니다 .
Michael Hampton

1
안녕하십니까, Centos 6.x는 재부팅 전에 서비스를 중단 할 수있는 옵션이 있습니다. "shutdown -h now"는 정상 종료이고 "reboot -h now"는 정상 재부팅입니다. 귀하의 Centos 서버에서 사용해보십시오 ...
GeckoSEO

1
오? 그리고이 -h옵션은 무엇을합니까? 맨 페이지에 없습니다.
Michael Hampton

2
정말? 이에 대한 문서가 있습니까? 첫째, 그 무엇, 때문에 reboot하지 않고 -h . 둘째, 내가 말할 수있는 한, 그런 식으로 문서화되지 않았습니다.
Michael Hampton

2
방금 연결 한 문서에 내가 말한 내용이 정확하게 표시됩니다. 옵션 reboot이 없습니다 . -hshutdown
Michael Hampton

2

최종 사용자와 고객에게 원격 지침을 제공 할 때 poweroff시스템을 종료하고 전원을 끄는 데 사용 하도록 지시합니다 .

웜 재부팅을 원한다면 reboot명령 을 사용하는 것이 좋습니다 .

나는 발행Ctrl-Alt-Delete 이 이것을 달성 한다고 말할 수 있다고 생각 한다.)


이 답변에 동의하지 않습니다. 재부팅 및 종료 (Ctrl-Alt-Delete)는 강력하며 mySQL을 실행하는 환경과 같은 일부 환경에서 소켓 "잠금"을 유발하여 새 소켓을 생성하거나 새 소켓을 다시 작성하기 전에 기존 소켓을 삭제 / 이동해야합니다 하나.
GeckoSEO

1
@GeckoSEO Linux 서버에서 Ctrl-Alt-Delete를 활성화 할 수 있는 위험성을 언급하는 것은 매우 까다로운 제안이었습니다 .
ewwhite

다른 한편으로 내 응답은 모호하지 않았습니다. 나는 단순히이 질문을 해결하려는 사람들의 대답을 명확하게하려고했습니다. 내 이전 답변을 참조하십시오. 도움이되기를 바랍니다.
GeckoSEO

2

'init 6'명령을 사용합니다.

init 6은 init 프로세스에 init 파일에 기록 된대로 생성 된 모든 프로세스 / 데몬을 셧다운하고 (시작된 역순으로) 마지막으로 shutdown -r now 명령을 호출하여 시스템을 재부팅합니다.

자세한 내용은 이 질문에 나와 있습니다.


0

이 답변이 마음에 들지 않을 수도 있지만이 답변에는 다른 사람이 고려하지 않은 통찰력이 포함되어 있습니다. . . 당신은 쓰기:

나는 항상 다음 명령을 사용했습니다.

shutdown -r now

그러나 때로는 MySQL 문제가 발생합니다.

여기서 문제는 시스템 종료 방법이 아니며 시스템 종료를 올바르게 처리 할 수없는 소프트웨어입니다. MySql.

실제로이 문제를 해결할 수있는 유일한 방법은 MySql을 대체하거나 (PostgreSql은 대용 대체품) FIRST가 아기처럼 MySql을 방해하는 자체 종료 스크립트를 작성하고 종료하면 기꺼이 시스템을 종료합니다.

... 26 년 이상 데이터베이스 시스템을 전문화 한 사람으로서, 최근 MySql이 데이터베이스 시스템의 가장 중요한 측면에서 역량과 관련하여 함께 행동하기 시작한 것은 최근에야 -데이터 보안 / 무결성. 이전에는 이러한 측면에 대한 관심이 적었고 성능에 대한 관심이 많았습니다. 그러나 데이터를 잃어 버리면 훌륭한 성능은 무엇입니까? 예를 들어,보고있는 시점에서 Netflix 스트리밍 비디오 녹화와 같은 일부 응용 프로그램에서는 절대 충실도가 특히 중요하지 않을 수도 있습니다. 어쩌면 고객은 실패 후 약간의 비디오 백업을 좋아할 수도 있습니다. 그러나 뱅킹 시스템에서는 엄청난 비율의 재앙입니다. 데이터 소유자 만 자신에게 적합한 것을 알 수 있습니다.


1
시스템 재시작 또는 종료 문제로 인해 mysql을 교체 하시겠습니까? 그리고 솔루션의 마지막 부분은 질문을 한 사람의 문제를 해결하는 데 기여하지 않습니다
ftrujillo

이 답변은 소스 또는 참조가없는 mysql에 대해 바이어스됩니다. 질문과 관련하여 유용하지 않습니다. 종료하는 데 시간이 너무 오래 걸리는 소프트웨어는 재부팅 할 때 문제를 일으킬 수 있습니다 (특히 시스템 및 공격적인 시간 초과).
Harald
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.