猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

【インフラ】chkconfig コマンド サーバーが起動した時などにMySQLやApache等のミドルウェアを自動起動する

DBサーバーであれば、サーバー再起動時にはMySQL自動起動して欲しいです。Webサーバーであればサーバー起動時にはApacheが自動で起動して欲しいです。Linuxサーバーで、そういった設定を行うコマンドが chkconfig です。

MySQLApacheなんかを自動起動の設定にする手段について書きます。

chkconfig 自動起動の設定一覧を表示する

まず、自動起動設定になっているかどうかを確認するため、引数などを付けずに chkconfig を実行します。

$ chkconfig
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off
...

なんかいろいろ出てきます。 httpdApachemysqlMySQL の設定ですね。特定のサービスだけ知りたい場合は grep などを使いましょう。

$ chkconfig  | grep mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

なにか数字と on/off が表示されますね。2-5の値がonになっていれば、「OS起動と同時にmysqlも起動」するということになります。

chkconfig on で自動起動の設定をする

もし2-5の値がonになっていなければ、自動起動になっていません。以下のコマンドで自動起動をonにしましょう。root権限があるユーザーでないと変更できません。

$ chkconfig mysql on

これで、OS起動時にmysql自動起動するようになります。 chkconfig | grep mysql で設定が変わっているかどうか確認しましょう。

逆にオフにする場合は

$ chkconfig mysql off

です。

on/offの前にある数字は?

Linuxランレベルというやつです。LinuxのOSによって微妙に異なりますが、ざっくりは決まっています。

0 はシャットダウンされた状態です。 0:off というのは「シャットダウンした時オフになる」ということです。

1 は Linuxが「シングルユーザーモード」で起動している時の設定です。シングルユーザーモードとは、rootユーザーのみでログインできる状態です。

2-5 はOSによって異なりますが、概ね「ふつうに起動している状態」となります。

6 はリブート状態。これから再起動される状態です。6:offは再起動前にオフになることを表します。

殆ど使いませんが、 chkconfig mysql 34 とすると 3と4だけオンにできます。

基本的には chkconfig xxx onchkconfig xxx off だけ知っていればokです。

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)