Ubuntuサーバー構築入門

  • Ubuntu 20
  • Ubuntu 18
  • Ubuntu 16

systemctl - systemdで管理されているサーバーアプリケーションの管理

systemctlコマンドを使うと、systemdで管理されているサーバーアプリケーションの管理を行うことができます。

ここでは、apache2を使って、各種コマンドについて解説します。

アプリケーションの開始

アプリケーションを開始するには、startコマンドを使用します。

sudo systemctl start apache2

アプリケーションの停止

アプリケーションを停止するには、stopコマンドを使用します。

sudo systemctl stop apache2

アプリケーションの再起動

アプリケーションを再起動するには、restartコマンドを使用します。

sudo systemctl restart apache2

stopの後に、startが実行されます。

アプリケーションの状態

アプリケーションの状態を見るには、statusコマンドを使用します。

sudo systemctl status apache2

アプリケーションが起動している場合は、以下のように表示されます。

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           mqapache2-systemd.conf
   Active: active (running) since Fri 2020-06-05 10:27:15 JST; 3h 32min ago
 Main PID: 1624 (apache2)
    Tasks: 55 (limit: 9479)
   CGroup: /system.slice/apache2.service
           tq1624 /usr/sbin/apache2 -k start
           tq1628 /usr/sbin/apache2 -k start
           mq1629 /usr/sbin/apache2 -k start

アプリケーションのリロード

アプリケーションで、reloadが定義されている場合は、reloadを使うことができます。

sudo systemctl reload apache2

apache2の場合はグレースフルスタート、postfixの場合は、設定ファイルの再読み込みが定義されています。

各アプリケーションのsystemdの設定ファイルを見る

各アプリケーションのsystemdの設定ファイルは「systemctl status」の内容に含まれています。

sudo systemctl status apache2

以下の「/lib/systemd/system/apache2.service」というのが、systemdのapacheの設定ファイルです。

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           mqapache2-systemd.conf
   Active: active (running) since Fri 2020-06-05 10:27:15 JST; 3h 32min ago
 Main PID: 1624 (apache2)
    Tasks: 55 (limit: 9479)
   CGroup: /system.slice/apache2.service
           tq1624 /usr/sbin/apache2 -k start
           tq1628 /usr/sbin/apache2 -k start
           mq1629 /usr/sbin/apache2 -k start

catコマンドを使って「/lib/systemd/system/apache2.service」の中身を見てみましょう。

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target