CentOSで自動起動中のサービスを確認するコマンドの解説です。
CentOS 8/7の場合は systemctl list-unit-files
コマンド、CentOS 6以下の場合は chkconfig --list
コマンドを使用します。
サーバー上で稼働するサービスは数多く存在しますが、設定コマンドは殆ど共通です。
OSのバージョン別に、設定方法と確認方法について詳しく紹介します。
CentOSのサービス(デーモン)とは
サーバー上で常に起動し続けるプログラムのことを「サービス」または「デーモン」と呼びます。
Windowsでも同様で、裏側で動き続けているプログラムは「サービス」です。
通常のアプリケーションとは異なり、バックグラウンドで常に動作している点が特徴です。
Webサーバや DBサーバなど、接続を待ち受けるプログラムでよく利用されています。
なお、サービスやデーモンは必要以上に起動しないことが重要です。
サーバーのメモリ使用量を抑えるためにも、不要なサービスは見直して停止させましょう。
CentOS 8/CentOS 7でサービス一覧を確認する
CentOS 7以降の場合、サービス関連の設定には systemctl
コマンドを利用します。
左側がサービス名、右側が設定状態を表しており、enabled
の場合は自動起動がONです。
コマンド実行例
# systemctl list-unit-files -t service
nginx.service enabled
sshd.service enabled
特定のサービスだけを確認する場合は systemctl is-enabled <サービス名>
です。
enabled
と表示されると自動起動がONとなっています。
# systemctl is-enabled nginx
enabled
サービスを自動起動するためには systemctl enable <サービス名>
を実行します。
例として、nginxの自動起動を有効化する場合は以下のコマンドです。
# systemctl enable nginx
サービスの自動起動をやめるには systemctl disable <サービス名>
を実行します。
例として、nginxの自動起動を無効化する場合は以下のコマンドです。
# systemctl disable nginx
CentOS 6でサービス一覧を確認する
CentOS 6以前の場合、サービス関連の設定には chkconfig
コマンドを利用します。
左側がサービス名、右にランレベルごとの設定状態が並んで出力されます。
ランレベルとはLinuxの動作モードのことで、多くの場合は3もしくは5に設定されているはずです。
runlevel
コマンドを実行することで確認できます。
コマンド実行例(ランレベル3なので3の欄を確認する)
# runlevel
N 3
# chkconfig --list
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
特定のサービスだけを確認する場合は chkconfig --list <サービス名>
です。
# chkconfig --list nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
サービスを自動起動するには chkconfig <サービス名> on
を使用します。
例として、nginxを自動起動する場合は以下のコマンドとなります。
# chkconfig nginx on
サービスの自動起動を止めるには chkconfig <サービス名> off
を使用します。
例として、nginxの自動起動を無効化する場合は以下のコマンドとなります。
# chkconfig nginx off
まとめ
CentOS におけるサービス(デーモン)の役割と、自動起動設定について解説しました。
CentOS 6以前であれば chkconfig
、CentOS 7/8以降であれば systemctl
を利用します。
chkconfig
とsystemctl
では、引数の順番が異なるため注意が必要です。
サーバー構築時や設定時によく使うため、概要だけでも理解しておきましょう。