Linux, Unixにおける daemon についてのメモ。
daemon processの定義と特徴
- daemon とは、バックグラウンドで実行され、親プロセスが1番のプロセスのことを指す。
- daemon プロセスの特徴として、ライフサイクルが長命でttyターミナルからの直接のI/Oやsignal handlingを受け付けないという定義もある
- daemonとして実行することを想定されているミドルウェアは、慣例的に名称の末尾に d が付与される ex) httpd , sshd
- プログラムをdaemonとして実行することを daemonize と呼称することがある。
背景知識
フォアグラウンド、バックグラウンド処理
Linuxでは、processの実行形式として、バックグラウンド、フォアグラウンドの2つが存在する。
自分の実務的な感覚では、 フォアグラウンドプロセス == ターミナル(シェル)が終了すると、一緒に終了するプロセス
みたいに捉えることが多い。つまり、フォアグラウンドプロセスとは 親プロセスがシェルのプロセス
と考えるケースが多い。
※Calude3 Opusで生成
※参考:以下の記事では、ttyプロセスとシグナルの観点で解説がなされている