8月31日(月)3、4コマ目
今日、やったこと
- firewalldのテスト
- systemd
今日のホワイトボード
LinuxマシンをWebサーバーにする
ネットワークの設定等は実施済みの前提だと、やることは、
/usr/sbin/httpd
を起動するだけ。
しかしながら、人力で毎回/usr/sbin/httpdと入力するのはあほらしい。
できたら、しかるべきタイミングで自動的に/usr/sbin/httpdを実行する仕組みが欲しい。
![]() |
| 図 LinuxマシンをWebサーバーにする |
解決策はsystemd。
systemdとは
昔のLinuxにあった、initの生まれ変わり。
initもsystemdもOS起動時に各種プロセスを順に起動する。
![]() |
| 図 initとsystemdの違い |
ユニット
(いまいちよくわからんが)systemdの管理対象(プロセスを立ち上げる)の最小単位。
![]() |
| 図 ユニット |
systemdとsystemctlコマンド
お互いの関係およびユニットの設定ファイルの関係は下図のとおり。
![]() |
| 図 systemdとsystemctl、設定ファイルの関係 |
systemdでプロセス起動・停止・再起動
起動・停止したいプロセスのユニットから起動・停止ができる。
〇起動
systemctl start ユニット名
〇停止
systemctl stop ユニット名
〇再起動
systemctl restart ユニット名
![]() |
| 図 プロセス起動・停止 |
![]() |
| 図 プロセス再起動(ユニットの状況確認) |
systemdでプロセスの確認
起動・停止したユニットの状態確認からプロセスの状態が確認できる。
〇ユニットの稼働状況確認
systemctl status ユニット名
〇プロセスが起動中か確認
systemctl is-active ユニット名
〇プロセスが自動起動するか確認
systemctl is-enabled ユニット名
![]() |
| 図 (ユニット再起動)、ユニットの状況確認 |
![]() |
| 図 プロセスは稼働中?プロセスは自動起動する? |
systemdでプロセスを自動起動
OS起動時にsystemdがプロセスを起動する、起動しないを設定できる。
〇自動起動する
systemctl enable ユニット名
〇自動起動しない
systemctl disable ユニット名
![]() |
| 図 プロセスをOS起動時に起動する、起動しない |
ユニット、ユニットの設定ファイル、起動プロセス、プロセスの設定ファイル
ユニット ≠ プロセス
です。
そもそも、ユニットとかプロセスとかなじみのないもの、初見のものが一気に出てきてごちゃごちゃになりやすい。
![]() |
| 図 ユニット、実行コマンド、起動プロセス、プロセスの設定ファイル |
systemctl enable httpd.serviceを実行すると、OS起動時にWebサーバーのプロセスがsytemdによって起動する。
〇httpd.service
systemdが管理するユニット。
このユニットの設定ファイル/usr/lib/systemd/system/httpd.serviceにて、/usr/sbin/httpdを実行するように設定されている。
〇/usr/sbin/httpd
Webサーバーの本体。このファイルを実行すると、Webサーバーの処理を行うプロセスが起動する。
〇/etc/httpd/conf/httpd.cond
/usr/sbin/httpdが起動時に読み込むWebサーバーの設定ファイル。
ホームページの格納ディレクトリなんかが設定されている。
systemdと/usr/sbin/httpdの守備範囲
systemdの仕事はユニットhttpd.serviceにて指定さている/usr/sbin/httpdを実行するまで。
Webサーバーとしての仕事は/usr/sbin/httpd実行で起動するプロセスが担当。
次回は
firewalldのテストの解説とsystemdのつづき。










コメント