systemctlコマンドの使い方 ~CentOS7で起動・再起動・全サービス一覧・自動起動設定など

CentOS

systemctlコマンドの使い方

CentOS6までのserviceコマンドやchkconfigの役割がCentOS7からはsystemctlになりました。
systemctlはsystemdに命令するコマンドです。

httpdやmysqldやsshdなどの起動・再起動はもちろん自動起動の設定などもCentOS7からは、こちらのコマンドを使います。

systemctlで出来ることで主要なものをピックアップしています。

systemctlの使い方

サービス(ユニット)名を探す

以下コマンドを使うにはサービス(ユニット)名を指定する必要があります。

全てのサービス名からgrepでおおよその含むキーワードを指定して絞り込んで探してみましょう。
以下の例ではhttpdのキーワードで探しています。

# systemctl list-unit-files -t service | grep httpd
httpd.service                                 enabled

httpd.serviceというのがサービス(ユニット)です。コマンドによっては.serviceは省略することもできます。

※これらのサービスは/usr/lib/systemd/system/以下で管理されています。

サービスの起動

サービスを起動します

# systemctl start <unit>

サービスの停止

サービスを停止します

# systemctl stop <unit>

サービスの再起動

サービスを再起動します

# systemctl restart <unit>

サービスの再読み込み

サービスのリロードをします。失敗したら起動しないので安全。

# systemctl reload <unit>

サービスの状態表示

指定サービスの状態を表示します

# systemctl status <unit>

例を挙げます。httpd

# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 金 2021-05-28 17:34:46 JST; 22h ago
     Docs: man:httpd.service(8)
  Process: 52177 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 118920 (httpd)
   Status: "Total requests: 10; Idle/Busy workers 100/0;Requests/sec: 0.000125; Bytes served/sec:  11 B/sec"
    Tasks: 59
   Memory: 99.6M
   CGroup: /system.slice/httpd.service
           ├─118920 /usr/sbin/httpd -DFOREGROUND
           ├─118929 /usr/sbin/httpd -DFOREGROUND
           ├─118930 /usr/sbin/httpd -DFOREGROUND
           ├─118935 /usr/sbin/httpd -DFOREGROUND
           ├─118941 /usr/sbin/httpd -DFOREGROUND
           ├─118948 /usr/sbin/httpd -DFOREGROUND
           ├─118980 /usr/sbin/httpd -DFOREGROUND
           └─118992 /usr/sbin/httpd -DFOREGROUND

 5月 28 17:34:46 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
 5月 28 17:34:46 localhost.localdomain httpd[118920]: AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/httpd.conf:389
 5月 28 17:34:46 localhost.localdomain httpd[118920]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'Serv...this message
 5月 28 17:34:46 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

稼働中のサービス一覧

稼働しているサービスの一覧を表示します

# systemctl list-units -t service

全サービスの一覧・自動起動設定付き

全サービスの一覧を自動起動ステータス付きで表示します。

# systemctl list-unit-files -t service

サービスが自動起動有効か確認

指定さいたサービスが自動起動が有効かどうかを確認します。

# systemctl is-enabled <unit>

以下のコマンドでも確認できます。

# systemctl list-unit-files -t service | grep <unit>

サービスの自動起動を有効化

指定したサービスの自動起動を有効化します

# systemctl enable <unit>

サービスの自動起動無効化

指定したサービスの自動起動を無効化します

# systemctl disable <unit>

systemdのリロード

サービスではなくsystemdのリロードを行います。
新規にユニットを作ったり、/etc/systemd/system/以下のファイルを変更したときに利用します。

# systemctl daemon-reload

コメント

タイトルとURLをコピーしました