MySQLの再起動をするときはいつもcondrestartするだけだったのだけど、ふと気になって/etc/init.d/mysqldでコマンドを表示してみたら見たこと無いのがいくつか混じってたのでメモっておくテスト。基本的には、/etc/init.d/mysqldを読んだだけ。
起動コマンドの確認
# /etc/init.d/mysqld
Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload|startsos}
try-restartとか、force-reload、startsosは他のアプリケーションでは見かけない。
起動コマンドの説明
start
mysqldプロセスを開始するstop
mysqldプロセスを停止するstatus
mysqldプロセスの起動状況を確認するrestart
mysqldプロセスの起動状況によらず以下を実行する- stop
- start
condrestart
mysqldプロセスが起動しているときのみ以下を実行する。- stop
- start
つまり停止状態で行っても起動しない
try-restart
condrestartと同じreload
設定の再読み込み。force-reload
「強制的に設定を再読み込み」ってどういうことだろうと思ったら、restartと同じ。startsos
オプション「–skip-grant-tables」「–skip-networking」を付けてmysqldプロセスを起動する。オプションの意味は、以下の通り。
- –skip-grant-tables … どんなユーザでも接続可能な状態で起動
- –skip-networking … ローカル接続のみ可能な状態で起動
つまりログインできなくなったときにこれで再起動すればとりあえず管理者権限でログインできる、その代わり外部サーバからは接続できなくなると。まさにSOS。
起動オプションなので、元の状態に戻すにはプロセスの再起動が必要。
知らなかった点、誤解してた点。
- try-restartはcondrestartと同じ
- force-reloadはrestartと同じ
- startsosっていう緊急時用コマンドがある
- でも間違いなくサービスはダウン(1つのサーバで完結していない限り)
- MySQLの話じゃないけど、gracefulとcondrestartは同じなんだって勘違いしてた。gracefulがきちんと子プロセスの終了を確認するのに対して、condrestartはただ再起動してるだけだ…