画像ツール一覧

デーモン

Daemon

ITの運用・現場用語

デーモンとは、UNIX系OSなどで、対話操作を中心とせずサービスを提供するバックグラウンドのプログラムです。常駐するもののほか、要求が来たときに起動されるものもあります。

🐾 猫で例えると?

紙袋の狭い入り口の奥、薄暗い空間にひっそりと身を潜めながら、外の様子をじっと窺っている茶トラの猫
紙袋の奥でリクエストを待ちながら常駐する茶トラ

どこに行ったかと思えば、紙袋の薄暗い奥底にひっそりと身を潜めている茶トラ。表舞台からはその姿が全く見えなくても、猫はそこで顔を上げており、外の世界で何かが起きるのをじっと待ち構えています。ユーザーから見えないバックグラウンドで常に待機し、役割が回ってきた瞬間に仕事をする姿は、まさに「デーモン」そのものです。

🐾 PR

💻 IT現場における「デーモン」とは?

LinuxやUNIXベースのシステムを運用する際、デーモンはOSの命綱とも言える存在です。私たちが普段WebブラウザでWebサイトを閲覧できるのは、サーバー側で「Webサーバーデーモン(httpdやnginx)」が裏方として常に起動し、世界中から届くアクセス要求(HTTPリクエスト)を四六時中待ち受けてくれているからです。

システムのサービスとして動くデーモンは、通常、利用者のログアウトとは独立して動きます。ただし障害や設定で終了する場合はあります。名前の末尾にdが付くsshdなどが代表例ですが、命名は必須ルールではありません。Windowsのサービスと役割が近い概念です。

⚠️ デーモンの仕組みと注意点

従来は端末から切り離す処理をプログラム自身で行うことがありました。systemdなどのサービス管理下では、プロセスをフォアグラウンドで動かして管理を任せる方式も一般的です。利用者の画面がなくても、標準出力やログを通じて状態を確認できます。

Linuxシステムにおけるデーモンの状態管理(systemd)の例

systemdを採用したLinuxでの確認例です。ディストリビューションによってサービス名はsshd.serviceではなくssh.serviceなどの場合があります。

# 状態の確認
systemctl status sshd.service
# 当該サービスの直近50件のログ
journalctl -u sshd.service -n 50 --no-pager

active (running)はプロセスが動いていることを示しますが、接続や認証まで正常とは限りません。inactiveでも正常に完了した一回限りのサービスなどがあるため、種類と期待する状態を合わせて判断します。

🛠️ デーモンを賢く使うためのポイント

サーバーエンジニアがデーモンの管理・トラブルシューティングを行う際は、その隠密な性質を捉えるためのアプローチが必要です。

紙袋の中で気配を待つ茶トラのように、デーモンは画面に現れず働くことがあります。動いていないように見えたら、稼働状態・起動設定・ログを順に確認しましょう。「今起動しているか」と「再起動後も自動で起動するか」は別の確認項目です。