web-dev-qa-db-ja.com

CentOSを適切に再起動する最良の方法は?

私はいつもコマンドを使いました:

shutdown -r now

ただし、場合によってはMySQLの問題が発生します。

CentOSを再起動する最も適切な方法は何ですか?

私は見た:

reboot

そして

halt

マシンを静かに再起動するにはどうすればよいですか?

89
User

これらのコマンド以外のものを使用してサーバーを再起動するより良い方法はありません。

  • shutdown は、システムを停止する最も一般的な方法です。引数-rと特定の時間(または 'now')を追加すると、シャットダウンシーケンスの後でシステムを停止するのではなく、システムを再起動します。
  • reboot は、ハードディスクのメンテナンスを行うラッパーラウンドシャットダウンです(同期および/またはスタンバイモードにすることで、実際には関係ありません)。
  • ランレベル0または6でない場合、reboot(> 2.74)の新しいバージョンはshutdownを開始します。
  • ほとんどのinitスクリプトは halt を呼び出して、ログを tmp に作成します。

最新のディストリビューションでは、使用しているコマンドに関係なく、すべてのタスクがカバーされています。基本的に、それらはすべて SysV (CentOS <7)または systemd (CentOS> = 7)スクリプトのシャットダウンランタイムを開始します(簡単にするために、それらをinitスクリプトと呼びます)読書)。

Initスクリプトを使用して段階的にシャットダウンすると、通常 runlevel 'S'で登録されているすべてのサービスが停止します。 CentOSのMySQL initスクリプトのように、個々のinitスクリプトにはタイムアウトを設定できます。 stop引数が指定され、デーモンがかなりの時間内にシャットダウンされない場合、スクリプトは停止して終了し、失敗します。シャットダウンプロセスは、何も問題がないかのように続行され、少し時間がかかり、おそらく警告が出力されます。最後に、すべてのinitスクリプトが実行されると、必然的に発生します。実行中のすべてのプロセスはSIGTERMsignal を取得し、数秒(2または5)後に、 SIGKILL[〜#〜] acpi [〜#〜] を呼び出して実際にシステムを再起動またはシャットダウンする前に、これにより残りの部分がクリーンアップされます。

1つの例外は、-fオプションを指定したrebootコマンドの使用です。これにより、initスクリプトの実行がスキップされ、システムが直接再起動します。

MySQLが適切にシャットダウンしないので、心配の根本的な原因を修正したほうがよいでしょう。

多くの場合、これは、デーモンを安全に終了する前に行う必要のある大量の作業が原因です。終了するのに1時間以上かかった+300.000テーブルを持つMySQLインスタンスがありました。巨大なバッファーとスパースI/O可用性を使用するシステムでも同様の問題が見つかります。

104
Joffrey

Centos 6.xの正常なシャットダウンは、rootとしてコマンドを使用して行う必要があります。

shutdown -h now

これにより、サーバーを正常にシャットダウンする前に、実行中のすべてのサービスを停止しようとします。

このコマンドを使用すると、mySQLソケットの問題も防止されます。

同様に、正常な再起動の場合:

reboot -h now

ここで同様の質問に関する以前の回答を読むことができます:

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

38
GeckoSEO

コマンド 'init 6'を使用します。

init 6は、initファイルに記述されているように(開始された順序とは逆の順序で)生成されたすべてのプロセス/デーモンをシャットダウンし、最後にshutdown -r nowコマンドを呼び出してマシンを再起動するようinitプロセスに指示します。

詳細は この質問について をご覧ください。

3
Itai Ganot

エンドユーザーと顧客にリモートで指示を出すときは、poweroffを使用してシステムをシャットダウンして電源を切るように指示します。

ウォームリブートが必要な場合は、rebootコマンドを使用することをお勧めします。

発行Ctrl-Alt-Delete もこれを実現します;)

2
ewwhite

この答えは気に入らないかもしれませんが、この答えには他の誰も考えていない洞察が含まれています。 。 。あなたが書く:

私はいつもコマンドを使いました:

今すぐシャットダウン-r

ただし、場合によってはMySQLの問題が発生します。

ここでの問題は、シャットダウンの方法ではなく、シャットダウンを適切に処理できないソフトウェアです。 MySql。

これに実際に対処できる唯一の方法は、MySqlを置き換えることです(PostgreSqlは優れた置き換えです)OR最初にMySqlを赤ん坊のように甘やかす、独自のシャットダウンスクリプトを記述します。システムをシャットダウンします。

... 26年以上データベースシステムを専門とする人物として、MySqlがデータベースシステムの最も重要な側面でコンピテンシーに関してその行動を取り始めたのはごく最近のことであることがわかりますfor-データセキュリティ/整合性。以前は、これらの側面にあまり注意を払わず、パフォーマンスにもっと注意を払っていました。しかし、データを失った場合の優れたパフォーマンスとは何でしょうか。 Netflixストリーミングビデオ録画など、一部のアプリケーションでは、視聴している時点での絶対的な忠実度は特に重要ではない可能性があります。おそらく、顧客は、障害発生後にビデオをバックアップしているようなものです。しかし、銀行システムでは、それは壮大な規模の災害です。データの所有者だけが、何が適切かを知ることができます。

0
Richard T