守护进程,服务和进程之间的技术区别是什么?

我想知道在ubuntu桌面上运行的守护进程,进程和服务的行为有何不同。

守护进程 – 守护程序不代表磁盘和执行监视器http://www.takeourword.com/TOW146/page4.html )。 它们是在后台运行且不是交互式的进程。 他们没有控制终端。

他们在预定义的时间执行某些操作或响应某些事件。 在* NIX中,守护进程的名称以d结尾。

服务 – 在Windows中,守护进程称为服务

如果你想知道为什么* NIX有一个名为service的命令,它只是用来运行init脚本( 初始化scriptrunlevel的简写)。

流程 – 流程是一个正在运行的程序。 在特定的时刻,它可以是运行睡眠僵尸 (完成的过程,但等待它的父进程来获取返回值)。

来源和进一步信息

  1. 守护进程是一种后台非交互式程序 。 它与任何交互式用户的键盘和显示分离。 用于表示后台程序的守护进程单词来自Unix文化; 它并不普遍。

  2. 服务是通过某些进程间通信机制(通常通过网络)响应来自其他程序的请求的程序。 服务是服务器提供的。 例如,NFS端口映射服务作为单独的portmap服务提供,该服务实现为portmapd守护程序。

    服务不一定是守护进程,但通常是。 具有GUI的用户应用程序可以内置服务:例如,文件共享应用程序。 另一个例子是X Window服务,它只是在后台运行:它接管你的屏幕,键盘和指针设备。 它是一种服务,因为它响应来自应用程序的请求(创建和操作窗口等等),甚至可以在网络的其他地方。 但X服务也会响应您的每次击键和鼠标移动。

  3. 进程是一个或多个执行线程及其共享资源集,其中最重要的是地址空间和打开文件描述符。 进程为这些执行线程创建一个环境,看起来他们自己拥有整个机器:它是一个虚拟机。

    在进程内部,其他进程和内核的资源是不可见的,不能直接访问(至少不是执行用户空间代码的线程)。 例如,没有办法引用另一个进程的打开文件或它们的内存空间; 就好像那些东西甚至不存在一样。

    该过程及其与内核和其他过程的关系可能构成了类Unix操作系统中最重要的抽象。 系统的资源被划分为流程,几乎所有东西都被理解为在一个或另一个流程内发生。