我想知道在 Ubuntu 中运行的守护进程、进程和服务的行为有什么区别。
答案1
守护进程- 守护进程不是代表磁盘和执行监视器(http://www.takeourword.com/TOW146/page4.html)。它们是在后台运行且不可交互的进程。它们没有控制终端。
它们在预定义时间或响应某些事件时执行某些操作。在 *NIX 中,守护进程的名称以d。
服务- 在 Windows 中,守护进程被称为服务。
如果你想知道为什么 *NIX 有一个名为服务,它只是用来运行初始化脚本(初始化脚本运行级别)。
过程- 进程是正在运行的程序。在特定时刻,它可以是跑步,睡眠, 或者僵尸(已完成的进程,但正在等待其父进程获取返回值)。
来源和更多信息:
答案2
A守护进程是背景,非交互式程序。它与任何交互式用户的键盘和显示器分离。表示后台程序的单词 daemon 源自 Unix 文化;它并不通用。
A服务是程序它通过某种进程间通信机制(通常通过网络)响应来自其他程序的请求。服务是服务器所提供的。例如,NFS 端口映射服务作为单独的 portmap 服务提供,该服务以
portmapd
守护进程的形式实现。服务不一定是守护进程,但通常是。具有 GUI 的用户应用程序可以内置服务:例如,文件共享应用程序。另一个示例是 X Window 服务,它绝不是在后台运行:它会接管您的屏幕、键盘和指点设备。它是一种服务,因为它响应来自应用程序的请求(创建和操作窗口等),这些请求甚至可以位于网络上的其他地方。但 X 服务还会响应您的每次击键和鼠标移动。
进程是一个或多个一起执行的线程以及它们共享的一组资源,其中最重要的是地址空间和打开的文件描述符。进程为这些执行线程创建一个环境,看起来就像它们拥有一整台机器:它是一个虚拟机。
在进程内部,其他进程和内核的资源是不可见的,并且不能直接访问(至少对于执行用户空间代码的线程来说是这样)。例如,没有办法引用另一个进程的打开文件或其内存空间;就好像这些东西根本不存在一样。
进程及其与内核和其他进程的关系可能是类 Unix 操作系统中最重要的抽象概念。系统的资源被划分为进程,几乎所有事情都可以理解为发生在某个进程内。