计算机daemon和通过死循环构造的进程的区别为:1、定义不同;2、功能不同。定义不同是指计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。
一、计算机daemon和通过死循环构造的进程的区别是什么
1、定义不同
计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。
- 计算机daemon:又称守护进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。
- 通过死循环构造的进程:顾名思义,是指在一个无限循环内不断运行的进程,该进程没有特定的事件或操作触发它终止,一直运行着直到人为结束或系统出现异常,是一种简单的编程技巧。
2、功能不同
计算机daemon专门管理和监控一些特定服务,而通过死循环构造的进程则为维护某些状态或者执行某些周期性的任务而存在。
- 计算机daemon:守护进程是一个生存周期较长的进程,通常独立于控制终端并且周期性的执行某种任务或者等待处理某些待发生的事件。大多数服务都是通过守护进程实现的。关闭终端,相应的进程都会被关闭,而守护进程却能够突破这种限制。
- 通过死循环构造的进程:这种进程通常用于维护某些状态或者执行一些周期性的任务,例如,执行某些定时任务,如备份数据库、清理缓存等操作;维护某些状态,如更新数据、检查任务状态、记录日志等操作;长时间运行的服务,如实时聊天服务器数据采集服务等。
二、deamon进程简介
Daemon程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。
编写规则:
- 程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。
- 调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。
- 改变当前工作目录至根目录,以免影响可加载文件系统。或者也可以改变到某些特定的目录。
- 设置文件创建mask为0,避免创建文件时权限的影响。
- 关闭不需要的打开文件描述符。因为Daemon程序在后台执行,不需要于终端交互,通常就关闭STDIN、STDOUT和STDERR。其它根据实际情况处理。
三、通过死循环构造的进程简介
通过死循环构造的进程是一种编程技巧,通常用于编写某些周期性的任务和长时间运行的后台服务,例如实时聊天服务器、数据采集服务等。通过死循环构造的进程可以在系统的后台一直运行,不断地执行指定的任务,并维持某些状态(如记录日志、更新进度等)。这种进程通常使用无限循环的方式,可以在循环中执行一些代码块。
四、计算机构造进程的方式
对于通用系统,需要有系统运行过程中创建或撤销进程的能力,主要分为4种形式创建新的进程:
- 系统初始化(查看进程linux中用ps命令,windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒的进程,称为守护进程,如电子邮件、web页面、新闻、打印)
- 一个进程在运行过程中开启了子进程(如nginx开启多进程,os.fork,subprocess.Popen等)
- 用户的交互式请求,而创建一个新进程(如用户双击暴风影音)
- 一个批处理作业的初始化(只在大型机的批处理系统中应用)
无论哪一种,新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用而创建的:
- 在UNIX中该系统调用是:fork,fork会创建一个与父进程一模一样的副本,二者有相同的存储映像、同样的环境字符串和同样的打开文件(在shell解释器进程中,执行一个命令就会创建一个子进程)。
- 在windows中该系统调用是:CreateProcess,CreateProcess既处理进程的创建,也负责把正确的程序装入新进程。
延伸阅读
进程与程序的区别
- 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的。
- 程序是静态的观念,进程是动态的观念。
- 进程具有并发性,而程序没有。
- 进程是竞争计算机资源的基本单位,程序不是。
- 进程和程序不是一一对应的:一个程序可对应多个进程即多个进程可执行同一程序,一个进程可以执行一个或几个程序。
文章标题:计算机daemon和通过死循环构造的进程的区别是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/48135