「chkconfigの書き方は知っているけど、systemdではどうすればいいのかわからない」
この記事では、chkconfigコマンドの基本的な使い方と、現代のsystemd環境での代替コマンドへの乗り換え方法を解説します。
・chkconfigはサービスの自動起動を設定するコマンド(CentOS 6以前など)
・CentOS 7以降のsystemd環境ではsystemctl enable/disableを使う
・command not foundが出た場合の対処法も解説
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
「command not found」が出たときの対処法
現代のLinux環境でchkconfig を実行すると、以下のエラーが表示されます。# chkconfig httpd on -bash: chkconfig: command not found
対処法1:systemctl を使う(推奨)
現代の環境では
systemctl が標準コマンドです。後述の乗り換え早見表を参考に、systemctl enable サービス名 を使ってください。対処法2:chkconfig をインストールする(古い環境の保守目的)
どうしても
chkconfig が必要な場合は、Red Hat系ではパッケージとしてインストールできます。# dnf install chkconfig または # yum install chkconfig
現代の標準「systemctl」コマンドへの乗り換え早見表
まずは、現代の最新環境ですぐに作業ができるよう、新旧のコマンド比較表を用意しました。今日からは右側のsystemctl コマンドを使う習慣をつけましょう。| やりたいこと | 昔のコマンド (chkconfig / service) | 現代のコマンド (systemctl) |
|---|---|---|
| 自動起動をONにする | chkconfig サービス名 on |
systemctl enable サービス名 |
| 自動起動をOFFにする | chkconfig サービス名 off |
systemctl disable サービス名 |
| 自動起動の設定状態を確認する | chkconfig --list サービス名 |
systemctl is-enabled サービス名 |
| 自動起動の設定一覧を見る | chkconfig --list |
systemctl list-unit-files -t service |
| サービスを今すぐ起動する | service サービス名 start |
systemctl start サービス名 |
| サービスを今すぐ停止する | service サービス名 stop |
systemctl stop サービス名 |
systemctlコマンドの実践的な使い方
自動起動を有効にする(enable)
systemctl enable は、次回のOS起動時からサービスを自動起動するよう登録するコマンドです。# systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service.
※「enable」は自動起動の設定を登録するだけで、今すぐサービスを起動するわけではありません。今すぐ起動したい場合は、合わせて
systemctl start を実行してください。今すぐ起動し、かつ自動起動も設定したい場合は --now オプションが便利です。# systemctl enable --now httpd
自動起動を無効にする(disable)
# systemctl disable httpd Removed /etc/systemd/system/multi-user.target.wants/httpd.service.
systemctl stop httpd を実行してください。自動起動の設定状態を確認する(is-enabled)
設定後はis-enabled コマンドで正しく反映されているか確認するのが現場の基本です。# systemctl is-enabled httpd enabled ← 自動起動が有効な状態 または disabled ← 自動起動が無効な状態
【補足】ランレベルとsystemdの「target」対応表
chkconfig --level 345 のように「ランレベル」で制御していた環境から移行する際に参考になる、systemdの対応概念(target)との対応表です。| ランレベル | 意味 | systemdでの対応target |
|---|---|---|
| 0 | シャットダウン | poweroff.target |
| 1 | シングルユーザーモード | rescue.target |
| 2 | マルチユーザー(ネットワークなし) | multi-user.target |
| 3 | マルチユーザー(テキスト) | multi-user.target |
| 4 | カスタム用途(通常は未使用) | - |
| 5 | マルチユーザー(GUI) | graphical.target |
| 6 | 再起動 | reboot.target |
【古い環境向け】chkconfigコマンドの基本的な使い方
システムの保守運用などで、まだCentOS 6以前やAmazon Linux 1といった古いサーバーを触る必要がある方向けに、chkconfig の基本構文も解説しておきます。(※実行にはroot権限が必要です)1. サービスの自動起動をON / OFFにする
指定したサービスがOS起動時に自動的に立ち上がるように設定(または解除)します。# 自動起動を有効にする場合 # chkconfig httpd on # 自動起動を無効にする場合 # chkconfig httpd off
--level オプションを使います。# ランレベル3,4,5でのみ自動起動を有効にする # chkconfig --level 345 httpd on
2. サービスの自動起動状態を一覧表示する
現在システムに登録されている全サービスの自動起動(on/off)状態を一覧表示します。# chkconfig --list httpd 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 httpd)。3. サービスを新しく登録・削除する
自分で作成した起動スクリプトなどを、自動起動の管理対象として追加・削除します。# サービスを追加する # chkconfig --add proftpd # サービスを管理対象から外す # chkconfig --del proftpd
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| 自動起動を有効にする(systemd) | systemctl enable サービス名 |
| 自動起動を無効にする(systemd) | systemctl disable サービス名 |
| 今すぐ起動 + 自動起動を設定(systemd) | systemctl enable --now サービス名 |
| 自動起動の状態を確認(systemd) | systemctl is-enabled サービス名 |
| 自動起動を有効にする(CentOS 6以前) | chkconfig サービス名 on |
| 自動起動を無効にする(CentOS 6以前) | chkconfig サービス名 off |
サービスの自動起動設定を確実に身につけたいですか?
chkconfigからsystemctlへの移行は、現代のサーバー管理に欠かせない知識です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
