展开

关键词

首页关键词linux 守护进程 作用

linux 守护进程 作用

相关内容

  • 守护进程

    首先,什么是守护进程?守护进程是一个在后台长期运行并且不受任何终端控制的进程。其次,为什么需要守护进程?我们知道linux有许多自带的守护进程,比如syslogd、crond、sendmail等。这一步的作用有两个:1.非系统守护进程可能是由用户手动执行的,比如在终端shell上执行.nginx。父进程的终止会让shell认为这条命令已经执行完毕。这一步的作用有三个:1.使进程成为新会话的首进程。2.使进程成为新进程组的组长。3.使进程脱离控制终端。(用户登陆终端就会产生一个新的会话,比如ssh telnet等登陆。这一步的作用有三个:1.修改从父进程继承来的文件屏蔽字,避免父进程原先设置的文件屏蔽字对守护进程来说不合理。注意有很多守护进程的实现是两次调用fork,这样做主要是为了避免僵尸进程的产生。何为僵尸进程呢?linux里的进程都属于一棵树,树的根结点是init(pid为1)。
    来自:
    浏览:572
  • Linux守护进程的启动方法

    这篇文章主要为大家详细介绍了Linux守护进程的启动方法,本文介绍如何将一个 Web 应用,启动为守护进程,感兴趣的小伙伴们可以参考一下守护进程(daemon)就是一直在后台运行的进程(daemon)。怎么才能让它变成系统的守护进程(daemon),成为一种服务(service),一直在那里运行呢?二、前台任务与后台任务上面这样启动的脚本,称为前台任务(foreground job)。变成守护进程的第一步,就是把它改成后台任务(background job)。$ node server.js &只要在命令的尾部加上符号&,启动的进程就会成为后台任务。三、SIGHUP信号变为后台任务后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,后台任务是否还会继续执行?Linux系统是这样设计的。四、disown 命令通过后台任务启动守护进程并不保险,因为有的系统的huponexit参数可能是打开的(on)。更保险的方法是使用disown命令。
    来自:
    浏览:1120
  • 广告
    关闭

    腾讯「技术创作101训练营」第三季上线!

    快来报名!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • 守护进程

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

    Linux 守护进程的启动方法“守护进程”(daemon)就是一直在后台运行的进程(daemon)。本文介绍如何将一个 Web 应用,启动为守护进程。?变成守护进程的第一步,就是把它改成”后台任务”(background job)。$ node server.js &只要在命令的尾部加上符号&,启动的进程就会成为”后台任务”。三、SIGHUP信号变为”后台任务”后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,”后台任务”是否还会继续执行?Linux系统是这样设计的。四、disown 命令通过”后台任务”启动”守护进程”并不保险,因为有的系统的huponexit参数可能是打开的(on)。更保险的方法是使用disown命令。:9615$ pm2 web十、Systemd除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。
    来自:
    浏览:818
  • PHP 编写守护进程

    PHP 创建守护进程进程根据状态可以分为三种进程,守护进程,僵尸进程,孤儿进程。今天我们着重来分析下守护进程。守护进程简介守护进程 (daemon) 是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。创建步骤创建子进程,终止父进程由于守护进程是脱离控制终端的,因此首先创建子进程,终止父进程,使得程序在 shell 终端里造成一个已经运行完毕的假象。调用 setsid 的三个作用:让进程摆脱原会话的控制、让进程摆脱原进程组的控制和让进程摆脱原控制终端的控制。直接上代码注:运行环境是 linux 系统,并且要在 cli 模式下运行。文件名:deamon.php
    来自:
    浏览:346
  • 守护进程

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

    守护进程(daemon)就是一直在后台运行的进程(daemon)。本文介绍如何将一个 Web 应用,启动为守护进程。?一、问题的由来Web应用写好后,下一件事就是启动,让它一直在后台运行。这并不容易。变成守护进程的第一步,就是把它改成后台任务(background job)。$ node server.js &只要在命令的尾部加上符号&,启动的进程就会成为后台任务。三、SIGHUP信号变为后台任务后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,后台任务是否还会继续执行?Linux系统是这样设计的。四、disown 命令通过后台任务启动守护进程并不保险,因为有的系统的huponexit参数可能是打开的(on)。更保险的方法是使用disown命令。localhost:9615 $ pm2 web十、Systemd除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。
    来自:
    浏览:582
  • Linux之守护进程理解(2)

    1、屏蔽一些有关控制终端操作的信号 防止在守护进程没有正常运转起来时,控制终端受到干扰退出或挂起。从父进程继承过来的当前工作目录可能在一个装配的文件系统中。因为守护进程通常在系统重启之前是一直存在的,所以如果守护进程的当前工作目录在一个装配文件系统中,那么该文件系统就不能被拆卸。另外,某些守护进程可能会把当前工作目录更改到某个指定位置,在此位置做它们的工作。例如,行式打印机假脱机守护进程常常将其工作目录更改到它们的spool目录上。例如,若守护进程要创建一个组可读、写的文件,而继承的文件方式创建屏蔽字,屏蔽了这两种许可权,则所要求的组可读、写就不能起作用。 7、处理SIGCHLD信号 处理SIGCHLD信号并不是必须的。因为守护进程通常在系统重启之前是一直存在的,所以如果守护进程的当前工作目录在一个装配文件系统中,那么该文件系统就不能被卸载。比如说从父进程继承的当前目录是mnt下面的一个被挂载的目录。
    来自:
    浏览:432
  • 守护进程详解

    在一个多任务的电脑操作系统中,守护进程(英语:daemon,ˈdiːmən或ˈdeɪmən)是一种在后台执行的电脑程序。此类程序会被以进程的形式初始化。守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程运行fork,然后使其父进程立即终止,使得这个子进程能在init下运行。这种方法通常被称为“脱壳”。系统通常在启动时一同引导守护进程。守护进程为对网络请求,硬件活动等进行响应,或其他通过某些任务对其他应用程序的请求进行回应提供支持。守护进程也能够对硬件进行配置(如在某些Linux系统上的devfsd),运行计划任务(例如cron),以及运行其他任务。在DOS环境中,此类应用程序被称为驻留程序(TSR)。
    来自:
    浏览:204
  • 守护进程与僵尸进程

    这是因为linux里的进程都属于一颗树,树的根结点是linux系统初始化结束阶段时启动的init进程,这个进程的pid是1,所有的其他进程都是它的子孙。这个树状关系也比较健壮,当某个进程还在运行时,它的父进程却退出了,这个进程却没有成为孤儿进程,因为linux有一个机制,init进程会接管它,成为它的父进程。这也是守护进程的由来了,因为守护进程的其中一个要求就是希望init成为守护进程的父进程。这里有一个假定,父进程生成守护进程后,还有自己的事要做,它的人生意义并不只是为了生成守护进程。父进程先fork出一个儿子进程,儿子进程再fork出孙子进程做为守护进程,然后儿子进程立刻退出,守护进程被init进程接管,这样无论父进程做什么事,无论怎么被阻塞,都与守护进程无关了。
    来自:
    浏览:211
  • 【Linux程序设计】之进程控制&守护进程

    实验题目:Linux环境下的进程控制实验目的:熟悉并掌握Linux环境下进程的相关函数的应用;守护进程的概念、启动和操作;进程操作程序的编写。一、Linux进程控制设计程序,满足如下要求:1、设计一个程序,要求显示Linux系统分配给此程序的进程号(PID)和它的父进程号(PPID)。在Linux环境下进程创建时,系统会分配一个唯一的数值给每个进程,这个数值就称为进程标示符(pid),他的父进程号用ppid表示。,需要该进程执行他的程序代码,在Linux系统中可以调用exec函数是程序执行。n); printf(等待的进程的进程号(PID)是:%d,结束状态:%dn,pid,WEXITSTATUS(status)); break; } } }}三、守护进程1、编写一程序,要求运行后成为守护进程
    来自:
    浏览:523
  • 13(守护进程)

    13.2 守护进程的特征守护进程是一种纯粹的后台进程,与运行前环境完全隔离,包括未关闭的文件描述符、控制终端、会话、进程组、工作目录以及文件创建掩码等 很多守护进程是父进程 fork 产生,所以会继承所有的父进程地址空间中的环境,所以必须在守护进程诞生之初,断绝这些相关环境,当然,守护进程也可以在 linux 系统启动时从启动脚本 etcrc.d 中启动,也可以由 crontab 启动 事实上,守护进程与普通进程的编写并没有特别大的区别13.3 编程规则(1)进程从创建他的父进程那里继承了文件创建掩码,它可能会修改守护进程创建的文件的存取位。这样做实现了以下两点:第一,如果该守护进程是通过shell命令启动的,那么父进程终止使得shell认为该命令已执行完毕。; sa.sa_flags = 0; if (sigaction(SIGHUP, &sa, NULL) < 0) { perror(sigaction); exit(-1); } 再次 fork 让守护进程不再担当会话组长
    来自:
    浏览:171
  • linux利用shell实现守护进程的脚本

    本文简单介绍如何利用linux的shell脚本实现简单的守护进程。Shell代码如下#!binsh #添加本地执行路径export LD_LIBRARY_PATH=. while true; do #启动一个循环,定时检查进程是否存在 server=`ps aux | grep CenterServer_dthen #如果不存在就重新启动 nohup .CenterServer_d -c 1 & #启动后沉睡10s sleep 10 fi #每次循环沉睡10s sleep 5done这样就实现了一个简单的守护进程,来保护进程宕机后,重新启动了。
    来自:
    浏览:524
  • 守护进程(Daemon)

    守护进程的概念守护进程(Daemon)一般是为了保护我们的程序服务的正常运行,当程序被关闭、异常退出等时再次启动程序恢复服务。例如 http 服务的守护进程叫 httpd,mysql 服务的守护进程叫 mysqld。Linux 中一般把守护进程放在etcinit.d中,启动服务时的命令一般是 etcinit.d* {start|stop|status|restart}。守护进程脱离终端而存在。守护进程的创建Linix 中可以调用 int daemon(int nochdir, int noclose); 函数来使程序成为一个守护进程。fork守护进程的父进程是 init 进程,在创建时先从父进程 fork 出来一个子进程,退出父进程,这时子进程变成孤儿,就成了 init 的子进程。
    来自:
    浏览:792
  • Android守护进程

    在Android OS上编写本地C C ++应用程序并使其作为守护进程运行是否可能(不违反任何许可证)? 已经有好几个守护进程正在运行,用ps命令可以看到哪个进程,法律部分最关心我。对于写作部分,我想可以使用基本的Linux编程概念,因为Android至少在某种程度上支持标准的Posix API。为了使它在手机启动时运行,init中当然还需要进行一些修改。
    来自:
    回答:2
  • Linux守护进程demo

           学习笔记#include #include #include #include #include #include int ngx_deamon(){ switch(fork()){ fork子进程case -1: 说明子进程创建失败 写一些日志文件 return -1; case 0: 这里是子进程 直接break跳出switch break; default : 这里是父进程 直接结束exit(0); } 只有子进程可以走到这里 umask(0); 设置umask值 确保创建文件的执行权限 if(setsid() == -1){ 脱离父进程后 创建新的session 并成为leader= 1){ 守护进程创建失败 失败后的处理 return 1; } while(1){ printf(ngx_deamonn); sleep(1); } return 0;}
    来自:
    浏览:204
  • Python实现守护进程

    代码实现python可以很简洁地实现守护进程,下面给出代码和相应注释。这份代码稳定运行在我本地电脑的一个守护进程(自制闹钟)里,暂时没出过问题。文件描述符 Linux是“一切皆文件”,文件描述符是内核为已打开的文件所创建的索引,通常是非负整数。进程通过文件描述符执行IO操作。umask权限掩码 我们知道,在Linux中,任何一个文件都有读(read)、写(write)和执行(execute)的三种使用权限。其中,读的权限用数字4代表,写权限是2,执行权限是1。它与守护进程是不同的:1、守护进程与终端无关,是被init进程收养的孤儿进程;而后台进程的父进程是终端,仍然可以在终端打印2、守护进程在关闭终端时依然坚挺;而后台进程会随用户退出而停止,除非加上nohup3、守护进程改变了会话、进程组、工作目录和文件描述符,后台进程直接继承父进程(shell)的换句话说:守护进程就是默默地奋斗打拼的有为青年,而后台进程是默默继承老爸资产的富二代。
    来自:
    浏览:1147
  • PHP 实现守护进程

    微信图片_20191107171931.jpg守护进程守护进程作为一种常驻进程服务,很常见,例如 PHP-FPM, NGINX,REDIS,都需要一个父进程来支持整个服务。但是用 PHP 编写守护进程不多见,今天就来用 PHP 来实现一下。微信图片_20191107172016.png细节 微信图片_20191107172059.png三者结果相同,说明了该进程即使进程组的组长,也是会话首领。为什么需要 umask (0)当你在 linux 调用 umask 的时候你会看到一个掩码值,这个掩码决定了你创建文件权限范围,例如本人当前机器的 umask 为0022文件的最大权限是 0666,而目录的最大权限是以上就是PHP 实现守护进程的详细内容
    来自:
    浏览:201
  • 守护线程与守护进程

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

    在linux上的命令tty 也可以查看到当前的终端。 比如我们在图形界面下打开一个终端可能是devpts0, 第二个可能是devpts1 ...三、守护进程守护进程是在后台运行不受终端控制的进程,通常情况下守护进程在系统启动时自动运行,用户关闭终端窗口或注销也不会影响守护进程的运行,只能kill掉。的,也就是守护进程。setsid command args 来使进程成为守护进程。四、创建守护进程步骤调用fork(),创建新进程,它会是将来的守护进程 在父进程中调用exit,保证子进程不是进程组组长 调用setsid创建新的会话期 将当前目录改为根目录 将标准输入、标准输出、标准错误重定向到
    来自:
    浏览:721

扫码关注云+社区

领取腾讯云代金券