web-dev-qa-db-ja.com

デーモン、サービス、プロセスの技術的な違いは何ですか?

Ubuntuで実行されているデーモン、プロセス、およびサービスの動作の違いは何かを知りたいです。

120
krupal6022

デーモン-デーモンはnotを表しますディスクおよび実行モニターhttp://www.takeourword.com/TOW146/page4.html )。これらはバックグラウンドで実行されるプロセスであり、インタラクティブではありません。制御端末はありません。

事前定義された時間に、または特定のイベントに応じて特定のアクションを実行します。 * NIXでは、デーモンの名前はdで終わります。

Services-Windowsでは、デーモンはservicesと呼ばれます。

* NIXにserviceという名前のコマンドがある理由がわからない場合は、initスクリプトの実行にのみ使用されます(initialization scriptrunlevel)。

Process-プロセスは実行中のプログラムです。特定の時点では、runningsleeping、またはzombie(プロセスを完了しましたが、親プロセスが戻り値を取得するのを待っています)。

ソースと詳細情報

123
green
  1. デーモンは背景、非対話型プログラムです。キーボードから切り離され、対話型ユーザーのディスプレイに表示されます。バックグラウンドプログラムを表すWordデーモンは、Unix文化に由来します。それは普遍的ではありません。

  2. serviceprogramであり、プロセス間通信メカニズム(通常はネットワーク経由)を介して他のプログラムからの要求に応答します。 サービスはサーバーが提供するものです。たとえば、NFSポートマッピングサービスは、portmapdデーモンとして実装される別個のportmapサービスとして提供されます。

    サービスはデーモンである必要はありませんが、通常はデーモンです。 GUIを備えたユーザーアプリケーションには、たとえばファイル共有アプリケーションなどのサービスを組み込むことができます。別の例としては、X Windowサービスがあります。これは、バックグラウンド以外のものです。画面、キーボード、およびポインティングデバイスを引き継ぎます。これは、ネットワーク上の他の場所にあるアプリケーションからの要求(ウィンドウの作成や操作など)に応答するため、サービスです。ただし、Xサービスは、すべてのキーストロークとマウスの動きにも応答します。

  3. プロセスは1つまたは複数の実行スレッドリソースの共有セットを持ち、最も重要なものはアドレススペースとオープンファイル記述子です。プロセスは、これらの実行スレッド用の環境を作成します。これらの環境は、マシン全体を所有しているように見えます。これは仮想マシンです。

    プロセス内では、他のプロセスおよびカーネルのリソースは見えず、直接アクセスできません(少なくともユーザー空間コードを実行しているスレッドからは)。たとえば、別のプロセスの開いているファイル、またはそれらのメモリ空間を参照する方法はありません。それはあたかもそれらが存在しないかのようです。

    プロセス、およびカーネルと他のプロセスとの関係は、おそらくUnixライクなオペレーティングシステムで最も重要な抽象化を構成します。システムのリソースはプロセスに区分されており、ほぼすべてが1つのプロセス内で発生していると理解されています。

41
Anon