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
コメント