首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

守护进程

5.1 概念 (1)什么是守护进程 Daemon(守护进程)是运行在后台一种特殊进程。**它独立于控制终端并且周期性地执行某种任务或等待处理某些发生事件。...Linux系统大多数服务器就是通过守护进程实现。 (2)为什么需要守护进程 守护进程是脱离于终端并且在后台运行进程。...守护进程脱离于终端是为了避免进程在执行过程中信息在任何终端上显示并且进程也不会被任何终端所产生终端信息所打断。...(3)守护进程实例 常见守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器mysqld等。...改变当前目录为根目录,防止占用其他可卸载文件系统 d.重设文件权限掩码,防止继承文件创建屏蔽字拒绝某些权限,增加守护进程灵活性 e.关闭文件描述符 f.守护进程退出处理 ?

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    守护进程

    首先,什么是守护进程守护进程是一个在后台长期运行并且不受任何终端控制进程。 其次,为什么需要守护进程?...我们知道linux有许多自带守护进程,比如syslogd、crond、sendmail等。那用户或开发者自己编写程序为什么也需要成为守护进程呢? 这主要是因为守护进程特性。...目的很明显,我们不希望在该终端上见到守护进程输出,用户也不期望他们在终端上输入被守护进程所读取。 最后,举个例子来说明一下。...只有父进程可以回收子进程资源,所以父进程不死,没有其它进程能解决这个僵尸进程;父进程死了,则可以由init来接管,僵尸进程就不存在了。僵尸进程服务器大忌,大量僵尸进程会导致服务器宕机。...两次fork 守护进程两次调用fork就是出于僵尸进程考虑:父进程生成守护进程后,还有其它事情要做,其『人生意义』不止是创建守护进程

    2.8K40

    守护进程

    守护进程(daemon)是一类在后台运行特殊进程,用于执行特定系统任务。很多守护进程在系统引导时候启动,并且一直运行直到系统关闭。另一些只在需要时候才启动,完成任务后就自动结束。...守护进程是一个在后台运行并且不受任何终端控制进程。这也是守护进程最重要特点。在Linux下创建守护进程步骤如下。...创建子进程,终止父进程 这是因为守护进程是脱离终端控制,所以要造成一种在终端里已经运行完假象,把所有的工作都放在子进程中去完成。父进程退出后,子进程变成孤儿进程。...重设文件掩码 由于通过fork函数创建进程继承了父进程文件掩码,这就给该子进程使用文件带来了诸多麻烦。因此,把文件创建掩码设置为0,可以大大增强该守护进程灵活性。...、 下面是在Linux系统下创建守护进程一个简单示例。

    1.9K10

    守护线程与守护进程

    守护进程进程创建守护进程   其一:守护进程会在主进程代码执行结束后就终止   其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes...are not allowed to have children 注意:进程之间是互相独立,主进程代码运行结束,守护进程随即终止 from multiprocessing import Process...无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调是:运行完毕并非终止运行 #1.对主进程来说,运行完毕指的是主进程代码运行完毕 #2.对主线程来说,运行完毕指的是主线程所在进程内所有非守护线程统统运行完毕...,主线程才算运行完毕 详细解释: #1 主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护进程都运行完毕后回收子进程资源(否则会产生僵尸进程),才会结束,...因为主线程结束意味着进程结束,进程整体资源都将被回收,而进程必须保证非守护线程都运行完毕后才能结束。

    1.9K90

    4.5 服务器 Git - Git 守护进程

    Git 守护进程 接下来我们将通过 “Git” 协议建立一个基于守护进程仓库。 对于快速且无需授权 Git 数据访问,这是一个理想之选。...通常,你只需要以守护进程形式运行该命令: git daemon --reuseaddr --base-path=/opt/git/ /opt/git/ --reuseaddr 允许服务器在无需等待旧连接超时情况下重启...,--base-path 选项允许用户在未完全指定路径条件下克隆项目,结尾路径将告诉 Git 守护进程从何处寻找仓库来导出。...如果有防火墙正在运行,你需要开放端口 9418 通信权限。 你可以通过许多方式将该进程守护进程方式运行,这主要取决于你所使用操作系统。...当你重启机器时,你 Git 守护进程将会自动启动,并且如果进程被意外结束它会自动重新运行。

    1.9K30

    守护进程DaemonSet

    守护进程(DaemonSet)是一种Kubernetes控制器,用于在集群中所有节点上运行一个Pod副本,以便在集群中实现全局一致性。...使用方法DaemonSet用法非常简单,只需要创建一个YAML文件来描述需要在每个节点上运行Pod副本即可。...DaemonSet用途DaemonSet有许多用途,其中最常见用途是在集群中运行一些全局服务。...下面是一些使用DaemonSet例子:日志收集:使用DaemonSet在每个节点上运行一个日志收集器,收集所有节点上日志,并将它们转发到一个中央日志聚合器。...安全审计:使用DaemonSet在每个节点上运行一个安全审计代理,监控所有节点上文件系统、进程和网络活动,并将它们发送到一个中央安全审计系统。

    43600

    13(守护进程)

    13.2 守护进程特征 守护进程是一种纯粹后台进程,与运行前环境完全隔离,包括未关闭文件描述符、控制终端、会话、进程组、工作目录以及文件创建掩码等 很多守护进程是父进程 fork 产生...,所以会继承所有的父进程地址空间中环境,所以必须在守护进程诞生之初,断绝这些相关环境,当然,守护进程也可以在 linux 系统启动时从启动脚本 /etc/rc.d 中启动,也可以由 crontab 启动...事实上,守护进程与普通进程编写并没有特别大区别 13.3 编程规则 (1)进程从创建他进程那里继承了文件创建掩码,它可能会修改守护进程创建文件存取位。...这样做实现了以下两点:第一,如果该守护进程是通过shell命令启动,那么父进程终止使得shell认为该命令已执行完毕。...第二,子进程继承了父进程进程组ID,但有一个新进程ID,这就保证了子进程不是组长进程

    79410

    Python 守护进程

    守护进程:通常被定义为一个后台进程,而且它不属于任何一个终端会话(terminal session)。许多系统服务由守护程序实施;如网络服务,打印等。 ...下面是转自一位网友写编写守护进程步骤: 1. 调用fork()以便父进程可以退出,这样就将控制权归还给运行你程序     命令行或shell程序。...由于一个控制终端     与一个会话相关联,而且这个新会话还没有获得一个控制终端,我们进程没     有控制终端,这对于守护程序来说是一件好事。 3....[类似的,我们可以改变当前目录至对于守护程序运行重要文件所在目录] 5. 调用‘umask(0)’以便我们拥有对于我们写任何东西完全控制。...注意到许多守护程序使用‘sysconf()’来确认     ‘_SC_OPEN_MAX’限制。‘_SC_OPEN_MAX’告诉你每个进程能够打     开最多文件数。

    92630

    守护进程详解

    在一个多任务电脑操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行电脑程序。此类程序会被以进程形式初始化。...守护进程程序名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志守护进程。 通常,守护进程没有任何存在进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。...守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程运行fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。 系统通常在启动时一同引导守护进程。...守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序请求进行回应提供支持。...在Windows系统中,由称为Windows服务应用程序来履行守护进程职责。 在原本Mac OS系统中,此类应用程序被称为“extensions”。

    87821

    Linux守护进程

    二、守护进程 1. 什么是守护进程 守护进程,也叫做精灵进程Daemon,是Linux中后台服务进程,通常独立于控制终端并且周期性执行某种任务或等待处理某些发生事件,一般使用d结尾名字。...Linux后台一些系统服务进程,没有控制终端,不能直接和用户交互,不受用户登录、注销影响,一直在运行着,这些就是守护进程,比如,预读入缓输出机制实现,ftp服务器,nfs服务器等等。...创建一个守护进程最关键一步是调用setsid函数创建一个新session,并成为session leader。 通过 ps aux 可以查看进程是否有依靠终端,?...⑤ 关闭文件描述符 继承打开文件不会用到,浪费系统资源,无法卸载。这一步也是非必要,主要是考虑资源合理利用。 ⑥ 开始执行守护进程核心工作 ⑦ 守护进程退出处理程序模型(非必要) 3....一般我们后台执行程序时是这样用 nohup ./a.out > file.log & 这样运行程序就是一个守护进程,也可以达到上面那样创建守护进程效果。

    15310

    python守护进程

    假如写一段服务端程序,如果ctrl+c退出或者关闭终端,那么服务端程序就会退出,于是就想着让这个程序成为守护进程,像httpd一样,一直在后端运行,不会受终端影响。...守护进程英文为daemon,像httpd,mysqld,最后一个字母d其实就是表示daemon意思。 守护进程编写步骤: fork子进程,然后父进程退出,此时子进程会被init进程接管。...重定向孙子进程标准输入流,标准输出流,标准错误到/dev/null 完成上面的4个步骤,那么最终孙子进程就称为守护进程,先看下代码,后面分析下步骤原因。 #!...,父进程退出 通常,我们执行服务端程序时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端盒shell都是进程,shell进程是终端进程进程,通过ps命令可以很容易查看到,在这个...为了避免这个问题,fork孙子进程处理, 6.重定向孙子进程标准输入流,标准输出流,标准错误流到/dev/null 因为是守护进程,本身已经脱离了终端,那么标准输入流,标准输入流,标准错误流就没有什么意义了

    1K20

    android守护进程

    而一些安全软件,如360等,会有结束进程功能,如果不做Service保持,就会被其杀掉。...要么像第四种单独进程运行service在360老版本是可以,但是在360比较新版本中仍然会被杀死....另外再加上两个类似一守护进程Service, 分别检查Service运行状态,注册响应广播,对其进行守护,一旦发现没有运行就将其启动....至于检测方式,可以轮询获取子进程Pid,若为1, 则说明子进程被Init进程所领养,已经成为了孤儿进程.   ...但是这种方式比较消耗电量,并且由于不同手机系统定制改变,当应用被强制停止时,父进程并不一定被真正杀死,因此在一些特定机型上是无法通过此方式进行判断.

    2.2K80

    守护进程(daemon)

    守护进程(daemon)是一类在后台运行特殊进程,用于执行特定系统任务。很多守护进程在系统引导时候启动,并且一直运行直到系统关闭。另一些只在需要时候才启动,完成任务后就自动结束。...守护进程是一个在后台运行并且不受任何终端控制进程。这也是守护进程最重要特点。在Linux下创建守护进程步骤如下。...创建子进程,终止父进程 这是因为守护进程是脱离终端控制,所以要造成一种在终端里已经运行完假象,把所有的工作都放在子进程中去完成。父进程退出后,子进程变成孤儿进程。...重设文件掩码 由于通过fork函数创建进程继承了父进程文件掩码,这就给该子进程使用文件带来了诸多麻烦。因此,把文件创建掩码设置为0,可以大大增强该守护进程灵活性。...、 下面是在Linux系统下创建守护进程一个简单示例。

    1.4K20

    linux守护进程

    1、什么是守护进程 守护进程是运行在后台一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件发生; 守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行...; 守护进程一般都以root用户权限运行,因为要使用某些特殊端口或者资源; 守护进程进程一般都是init进程,因为它真正进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由init...接管; 2、有哪些常见守护进程 日志服务进程 syslogd 数据库守护进程 mysqld 3、创建守护进程步骤 1)fork()创建子进程,父进程exit()退出 这是创建守护进程第一步。...因此从终端输入字符不可能达到守护进程守护进程中用常规方法(如printf)输出字符也不可能在终端上显示出来。...所以,文件描述符为0、1和2 3个文件(常说输入、输出和报错)已经失去了存在价值,也应被关闭。 7)守护进程退出处理 当用户需要外部停止守护进程运行时,往往会使用 kill 命令停止该守护进程

    3.1K20

    守护进程与僵尸进程

    这也是守护进程由来了,因为守护进程其中一个要求就是希望init成为守护进程进程。...如果父进程一直在运行着,这个ZOMBIE会永远占用系统资源,用KILL发任何信号量也不能释放它。这是很可怕,因为服务器上可能会出现无数ZOMBIE进程导致机器挂掉。 来看看内核代码吧。...forget_original_parent这个函数还会把该进程所有子孙进程重设父进程,交给init进程接管。 回过头来,看看为什么守护进程要fork两次。...这里有一个假定,父进程生成守护进程后,还有自己事要做,它的人生意义并不只是为了生成守护进程。...所以,fork两次守护进程很安全,避免了僵尸进程出现可能性。

    1.6K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券