问题描述
我想知道在Ubuntu桌面中运行的守护进程,进程和服务的行为有什么区别。
最佳解决方法
守护进程 – 守护进程不支持磁盘和执行监视器(http://www.takeourword.com/TOW146/page4.html)。它们是在后台运行并且不是交互式的进程。他们没有控制终端。
他们在预定时间或响应某些事件时执行某些操作。在* NIX中,守护进程的名字以d结尾。
服务 – 在Windows中,守护进程称为服务。
如果你想知道为什么* NIX有一个名为service的命令,它只是用来运行init脚本(简写为初始化scriptrunlevel)。
过程 – 过程是一个正在运行的程序。在特定的时刻,它可以是跑步,睡觉或僵尸(已完成的流程,但正在等待它的父流程获取返回值)。
来源和进一步信息:
次佳解决方法
-
守护程序是non-interactive程序的后台。它从键盘和任何交互式用户的显示中分离出来。表示后台程序的守护进程来自Unix文化;它不是普遍的。
-
服务是一种通过某些inter-process通信机制(通常通过网络)响应来自其他程序的请求的程序。服务是服务器提供的。例如,NFS端口映射服务作为单独的端口映射服务提供,该服务作为
portmapd
守护程序实现。服务不一定是守护进程,但通常是。具有GUI的用户应用程序可以包含内置的服务:例如file-sharing应用程序。另一个例子是X Window服务,它只是在后台:它接管你的屏幕,键盘和指针设备。它是一种服务,因为它响应来自应用程序的请求(创建和操作窗口等),甚至可以在网络上的其他地方进行响应。但X服务也会响应您的每一次击键和鼠标移动。 -
一个进程是一个或多个执行线程及其共享的一组资源,其中最重要的是地址空间和打开的文件描述符。一个进程为这些执行线程创建一个环境,看起来他们自己拥有整台机器:它是一台虚拟机。在进程内部,其他进程和内核的资源是不可见的,并且不能直接访问(至少不会执行user-space代码的线程)。例如,无法引用另一个进程的打开文件或其内存空间;就好像这些事情甚至不存在。该进程及其与内核和其他进程的关系可能构成Unix-like操作系统中最重要的抽象。系统的资源被划分为流程,几乎所有事情都被理解为发生在一个或另一个流程内部。