メインコンテンツへスキップ

Linuxにおけるプロセスとデーモンについて

·
Linux プロセス デーモン
目次

プロセスとは
#

プロセス(処理=process)とは、Linuxにおける実行中のプログラムのことを指します。 各プロセスにはPIDという一意のIDが割り振られ管理されます。 (psコマンドやkillコマンド実行時にこのPIDなどを指定することが可能)

同じプログラムでも、実行するたびに別のプロセスが生成される。 このとき、もともと動いていて新しいプロセスを生み出した側を親プロセス、そのとき生成された側を子プロセスと呼ぶ(pstree などで親子関係を確認できる)。

よく使うコマンド
#

# プロセス一覧を表示
ps aux

# プロセスの親子関係を表示
pstree

# 特定のプロセスを終了(PIDを指定)
kill 1234

デーモンとは
#

プロセスの中には、「バックグラウンドで動き続け、ユーザーと対話せずにサービスを提供する」タイプのものがあり、これをデーモンと呼ぶ。例として、Webサーバ(httpd / nginx)、SSHサーバ(sshd)、ジョブスケジューラ(cron)などがある。

デーモンの起動方式
#

方式特徴メリットデメリット
スタンドアロン常に単体で常駐応答が速いリソースを常に消費
スーパーサーバー(inetd等)接続時に起動リソース節約初回応答が遅い

デーモンは常に稼働・待機するため、待ち受ける種類が多いとリソース消費が増える。スーパーサーバーはこの問題を解決するため、接続を受けたタイミングで必要なサーバプロセスを起動する。

振り返りポイント
#

  • プロセスとは
    • PIDとは
    • 親・子プロセスとは
  • デーモンとは
    • スーパーサーバーはデーモンのどんな問題をどのように解決している?

参考
#