プロセスとは#
プロセス(処理=process)とは、Linuxにおける実行中のプログラムのことを指します。
各プロセスにはPIDという一意のIDが割り振られ管理されます。
(psコマンドやkillコマンド実行時にこのPIDなどを指定することが可能)
同じプログラムでも、実行するたびに別のプロセスが生成される。
このとき、もともと動いていて新しいプロセスを生み出した側を親プロセス、そのとき生成された側を子プロセスと呼ぶ(pstree などで親子関係を確認できる)。
よく使うコマンド#
# プロセス一覧を表示
ps aux
# プロセスの親子関係を表示
pstree
# 特定のプロセスを終了(PIDを指定)
kill 1234
デーモンとは#
プロセスの中には、「バックグラウンドで動き続け、ユーザーと対話せずにサービスを提供する」タイプのものがあり、これをデーモンと呼ぶ。例として、Webサーバ(httpd / nginx)、SSHサーバ(sshd)、ジョブスケジューラ(cron)などがある。
デーモンの起動方式#
| 方式 | 特徴 | メリット | デメリット |
|---|---|---|---|
| スタンドアロン | 常に単体で常駐 | 応答が速い | リソースを常に消費 |
スーパーサーバー(inetd等) | 接続時に起動 | リソース節約 | 初回応答が遅い |
デーモンは常に稼働・待機するため、待ち受ける種類が多いとリソース消費が増える。スーパーサーバーはこの問題を解決するため、接続を受けたタイミングで必要なサーバプロセスを起動する。
振り返りポイント#
- プロセスとは
- PIDとは
- 親・子プロセスとは
- デーモンとは
- スーパーサーバーはデーモンのどんな問題をどのように解決している?