计算机daemon和通过死循环构造的进程的区别是什么

计算机daemon和通过死循环构造的进程的区别为:1、定义不同;2、功能不同。定义不同是指计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。

一、计算机daemon和通过死循环构造的进程的区别是什么

1、定义不同

计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。

  • 计算机daemon:又称守护进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。
  • 通过死循环构造的进程:顾名思义,是指在一个无限循环内不断运行的进程,该进程没有特定的事件或操作触发它终止,一直运行着直到人为结束或系统出现异常,是一种简单的编程技巧。

2、功能不同

计算机daemon专门管理和监控一些特定服务,而通过死循环构造的进程则为维护某些状态或者执行某些周期性的任务而存在。

  • 计算机daemon:守护进程是一个生存周期较长的进程,通常独立于控制终端并且周期性的执行某种任务或者等待处理某些待发生的事件。大多数服务都是通过守护进程实现的。关闭终端,相应的进程都会被关闭,而守护进程却能够突破这种限制。
  • 通过死循环构造的进程:这种进程通常用于维护某些状态或者执行一些周期性的任务,例如,执行某些定时任务,如备份数据库、清理缓存等操作;维护某些状态,如更新数据、检查任务状态、记录日志等操作;长时间运行的服务,如实时聊天服务器数据采集服务等。

二、deamon进程简介

Daemon程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。

编写规则

  1. 程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。
  2. 调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。
  3. 改变当前工作目录至根目录,以免影响可加载文件系统。或者也可以改变到某些特定的目录。
  4. 设置文件创建mask为0,避免创建文件时权限的影响。
  5. 关闭不需要的打开文件描述符。因为Daemon程序在后台执行,不需要于终端交互,通常就关闭STDIN、STDOUT和STDERR。其它根据实际情况处理。

三、通过死循环构造的进程简介

通过死循环构造的进程是一种编程技巧,通常用于编写某些周期性的任务和长时间运行的后台服务,例如实时聊天服务器、数据采集服务等。通过死循环构造的进程可以在系统的后台一直运行,不断地执行指定的任务,并维持某些状态(如记录日志、更新进度等)。这种进程通常使用无限循环的方式,可以在循环中执行一些代码块。

四、计算机构造进程的方式

对于通用系统,需要有系统运行过程中创建或撤销进程的能力,主要分为4种形式创建新的进程:

  1. 系统初始化(查看进程linux中用ps命令,windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒的进程,称为守护进程,如电子邮件、web页面、新闻、打印)
  2. 一个进程在运行过程中开启了子进程(如nginx开启多进程,os.fork,subprocess.Popen等)
  3. 用户的交互式请求,而创建一个新进程(如用户双击暴风影音)
  4. 一个批处理作业的初始化(只在大型机的批处理系统中应用)

无论哪一种,新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用而创建的:

  • 在UNIX中该系统调用是:fork,fork会创建一个与父进程一模一样的副本,二者有相同的存储映像、同样的环境字符串和同样的打开文件(在shell解释器进程中,执行一个命令就会创建一个子进程)。
  • 在windows中该系统调用是:CreateProcess,CreateProcess既处理进程的创建,也负责把正确的程序装入新进程。

延伸阅读

进程与程序的区别

  1. 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的。
  2. 程序是静态的观念,进程是动态的观念。
  3. 进程具有并发性,而程序没有。
  4. 进程是竞争计算机资源的基本单位,程序不是。
  5. 进程和程序不是一一对应的:一个程序可对应多个进程即多个进程可执行同一程序,一个进程可以执行一个或几个程序。

文章标题:计算机daemon和通过死循环构造的进程的区别是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/48135

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLW的头像Z, ZLW
上一篇 2023年3月30日
下一篇 2023年3月30日

相关推荐

  • 开源文档协作工具:2024年10款评测

    国内外主流的10款开源文档协作平台对比:PingCode、Worktile、蚂蚁笔记(Leanote)、Wizard、Kooteam、ShowDoc、MrDoc、DooTask、语雀、WookTeam 。 在今天的数字化时代,寻找一个能够提高团队合作效率并确保信息共享流畅的解决方案,成了许多企业和个…

    2024年8月5日
    300
  • 企业如何智选知识管理工具?2024年8大精选

    本文将分享2024年8大优质企业知识管理工具:PingCode、Worktile、飞书文档、语雀、石墨文档、有道云笔记、Confluence、Document360。 很多公司都面临信息过载,难以将散落各处的知识有效整合和应用。这不仅影响决策效率,还可能导致重要信息的丢失。为了解决这一痛点,企业知识…

    2024年8月5日
    300
  • 产品经理秘籍:2024年9大主流需求管理工具

    本文将分享9款产品经理使用的主流需求管理工具:PingCode、Worktile、Tapd、禅道、Teambition、Testin、JIRA、Jama Connect、Wrike。 挑选一个能够高效精准地捕捉和管理需求的工具,对于推动项目成功至关重要,很多产品经理都面临着如何从众多选项中选择最适合…

    2024年8月5日
    400
  • 选择客户管理crm系统必看:全球15家顶级供应商综合比较

    对比的客户管理CRM系统包括:纷享销客、Zoho CRM、销售易、用友CRM、Salesforce、Microsoft Dynamics 365、销帮帮CRM、HubSpot、Oracle CRM、悟空CRM、神州云动CRM、红圈CRM、SAP CRM、Odoo、OroCRM。 一个合适的CRM系统…

    2024年8月5日
    700
  • 项目竣工资料管理软件有哪些

    项目竣工资料管理软件有许多,其中最为出色的要数PingCode和Worktile。这两款软件以其优秀的性能和功能,赢得了用户的青睐。简单来说,PingCode是一款专门为开发者设计的协作平台,强调代码质量、团队协作和敏捷开发。而Worktile则是一款面向企业的项目和任务管理工具,帮助团队更好地协作…

    2024年8月5日
    000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部