Linuxサーバ上で動いているプログラムは全てプロセスとして管理されており、
プロセスには、Linuxが起動した後にメモリ上に常駐するプロセスと、
実行するときだけメモリ上に読み込まれて実行後すぐに終了するプロセスがあります。
メモリ上に常駐するプロセスは、Linuxが稼働するために必要なプログラムとして動作しており、
メモリ上に常駐するプロセスはデーモン(daemon) と 呼ばれます。
※デーモンの意味は,悪魔の「demon」ではなく守護神の「daemon」です。
メモリ上に常駐するプロセス(デーモン)に対して、
コマンドラインでユーザーが実行するプログラムなどが、
実行するときだけ動作するプロセスとなります。
後程、詳しく説明致しますが、
プロセスの表示にはコマンドps を使います。
下記では、コマンドps にオプションauxf を付けてコマンド実行しプロセスを表示しています。
また、プロセスは/proc 配下にプロセスディレクトリとして、
/proc/(プロセスID)ディレクトリの表記で保存され、
プロセスが終了すると、その /procプロセスディレクトリは消えます。
ディレクトやファイルの表示にはコマンドls を使います。
下記では、コマンドls にオプション-al を付けてコマンド実行し/proc/配下を表示しています。
/proc/(プロセスID)ディレクトリの、
プロセスディレクトリには下記のようなファイルが含まれています。
プロセスの詳細を調べる事ができますが、内容を編集したり削除してしまうと、
システムに影響がでる場合があるので、参照用として利用します。
cmdline プロセスを開始したコマンド
cwd プロセスのカレントワーキングディレクトリ(CWD)へのシンボリックリンク
exe プロセスの実行ファイルへのシンボリックリンク
root ルートディレクトリへのシンボリックリンク
cpu 各cpuでのCPUタイムと統計情報
environ プロセスの環境変数の一覧
fd プロセスが使用しているファイル・デバイスのファイル記述子
maps プロセスのアドレス空間の状態
mem プロセスのアドレス空間の内容
statm プロセスのページ割り当て
stat プロセスの状態
status プロセスの状態(statより詳しい内容)
Linuxに限らずですが、システムを触っていると、
役目を終えているのにプロセスが終了せず、
メモリを開放してくれないプロセスについて対応する場面が出てくると思います。
そんな状態のプロセスを「ゾンビプロセス」や「孤児プロセス」と言ったりします。