首页 > 系统相关 >Linux守护进程

Linux守护进程

时间:2022-12-25 20:45:28浏览次数:35  
标签:用户 终端 Linux 进程 ID 守护

     守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件
     守护进程常常在系统引导装入时启动,在系统关闭时终止
Linux系统有很多守护进程,大多数服务都是用守护进程实现的
     在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会被自动关闭。
     守护进程能够突破这种限制,它从被执行开始运转,直到整个系统关闭才会退出。如果想让某个进程不因为用户或终端或其他的变化而受到影响,就必须把这个进程变成一个守护进程。

 

编写守护进程
创建子进程,父进程退出
在子进程中创建新会话
改变当前目录为根目录
重设文件权限掩码
关闭文件描述符

 

创建子进程,父进程退出

  这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第一步后就会在shell终端里造成一种程序已经运行完毕的假象。之后的所有工作都在子进程中完成,而用户在shell终端里则可以执行其他的命令,从而在形式上做到了与控制终端的脱离。

  由于父进程已经先于子进程退出,会造成子进程没有父进程,从而变成一个孤儿进程。在Linux中,每当系统发现一个孤儿进程,就会自动由1号进程(也就是init进程)收养它,这样,原先的子进程就会变成init进程的子进程了。 实例: pid = fork(); if (pid > 0) { exit(0); /*父进程退出*/ }

 

在子进程中创建新会话

进程组

  进程组是一个或多个进程的集合。进程组由进程组ID来惟一标识。除了进程号(PID)之外,进程组ID也是一个进程的必备属性。 每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。且该进程ID不会因组长进程的退出而受到影响。

会话期

  会话组是一个或多个进程组的集合。通常,一个会话开始于用户登录,终止于用户退出,在此期间该用户运行的所有进程都属于这个会话期

 

 

 

 

 

 

 

 

 

标签:用户,终端,Linux,进程,ID,守护
From: https://www.cnblogs.com/cnetsa/p/17004537.html

相关文章

  • 进程编程基础
    fork()fork()函数用于从已存在的进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个......
  • Linux中文件及文件描述符
    对于Linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。当打开一个现存文......
  • Linux 挂载 Windows 磁盘
    首先要确保设备加密和快速启动已经关闭,以下内容针对Linux5.15及之后的内核中引入的NTFS3驱动参考以下网址:fstab--Archwiki使用UUID/卷标官方推荐的方法是使用......
  • Linux分区命令parted的用法
    linux分区命令parted的用法parted的适用场景创建操作大于2T的分区一般情况下,我们都是选择使用fdisk工具来进行分区,但是目前在实际生产环境中使用的磁盘空间越来越大,呈T......
  • Linux服务器租用有什么优势
    1、开源Linux系统可用于开源用途,通过开源,使用者不仅可以查看Linux内核的代码,还可以对代码进行修改和搭建。2、稳定性使用Linux系统的用户很少会遇到系统崩溃......
  • linux与shell 3.bash shell基础
    通配符符号含义?任意单个字符*0个或多个字符[ay]a或y[a-y]a,b,c,...,y[!a]排除a例:$touchfallfellfullfill$ls-lf[!a]llfellful......
  • ARM Linux中链表使用实例
          ......
  • linux回炉第六天
    ~]#sed-rn's/root/ROOT/p'passwd~]#sed-rn's/root/ROOT/gp'passwd~]#sed-rn'1,2p'passwd~]#sed-rn'1,5s/root/ROOT/gp'passwd~]#sed-rn'1,+3s/root/ROOT......
  • linux 中 实现数据中指定的行的内容批量替换
     001、[root@PC1test4]#lsa.txtcoordinate.txt[root@PC1test4]#cata.txt##测试数据ddffsd1ssaaee2xxvvzz......
  • linux 中实现数据按照行进行展开
     001、[root@PC1test]#lscoordinate.txt[root@PC1test]#catcoordinate.txt##测试数据3MMM5GGG8QQQ[root@PC1......