サービス(デーモン)
/etc/sampleapp/app.conf の書き換えが終わりました。「設定の書き換えはこれで終わりですね」と言うと
サービス(デーモン)は、サーバーの裏でずっと動き続けて、頼まれごとを待っているプログラムです。
Webページを返すサービスや、SSHの接続を受け付けるサービスがその例です。
- サービス(デーモン)は、裏でずっと動き続けて、頼まれごとを待っているプログラム(Webのサービス、SSHを受け付けるサービスなど)
- 多くのサービスは起動したときに設定ファイルを読む
- 今の多くのLinuxでは systemctl で操作する(start / stop / restart / status)
- 「今動いているか」と「サーバーを起動したとき自動で動くか(enable)」は別のこと
身近な例えで理解する
受付係は営業時間中ずっと受付にいて、お客が来るのを待っています。受付のルールが変わったら、朝礼で伝え直してから新しいルールで受け付けます。毎朝出勤する担当が決まっていれば、開店と同時に受付が始まります。
- 受付係サービス(デーモン)
- お客を待ち続ける頼まれごと(接続)を待ち受ける
- ルールを伝え直す再起動・再読み込みで設定を反映する
- 毎朝出勤する担当が決まっているサーバーの起動と一緒に自動で動く(enable)
ルールの紙を書き換えても、受付係に伝えなければ前のルールのままです。設定ファイルも同じです。
ちょっと確認
いちばんあやしいのは?
例えを外して、実際のしくみ
サービス(デーモン)とは
設定の反映
多くのサービスは起動したときに設定ファイルを読みます。動いている途中でファイルを書き換えても、そのままでは前の設定で動き続けます。restart(止めて起動し直す)か、サービスが対応していれば reload(止めずに設定を読み直す)で反映します
systemctl
今の多くのLinuxでは、systemd というしくみがサービスを管理し、systemctl で操作します。sudo systemctl restart sampleapp で再起動、systemctl status sampleapp で動いているかと最近のログを確かめます
start と enable は別
start は「今動かす」、enable は「サーバーの起動時に自動で動くようにする」です。enable だけでは、今すぐは動きません(--now をつけると今も動かします)
このページのまとめ
- サービス(デーモン)
- 裏で動き続けて、頼まれごとを待つプログラムです
- restart / reload
- 止めて起動し直す / 止めずに設定を読み直す操作です
- status
- 動いているかと、最近のログを確かめる操作です
- enable
- サーバーの起動時に自動で動くようにする設定です
先輩のひとことの意味
先輩「設定ファイル変えただけじゃ反映されないよ。サービス再起動して」
sampleapp のサービスは、起動したときの設定のまま動き続けています。「sudo systemctl restart sampleapp でサービスを起動し直して、新しい設定を読ませて」という意味です。再起動のあとは systemctl status sampleapp で、ちゃんと動いているか確かめます。
練習問題で確かめる
サービスが今動いているか確かめるときに使うのは?
systemctl enable sampleapp を実行した。正しい説明は?
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。