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のつづき。


コメント

このブログの人気の投稿

6月22日(月)3、4コマ目

6月8日(月)1,2コマ目(B班)、3,4コマ目(A班)

9月28日(月)3、4コマ目