专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

什么是linux守护进程

来源:小易整编  作者:小易  发布时间:2024-03-21 07:27
摘要:在linux中,守护进程也称“精灵进程”,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。守护进程独立于控制终端并且周期性的执行某种发生的事件。本教程操作环境:linux5.9.8系统、DellG3电脑。守护进程的定...

在linux中,守护进程也称“精灵进程”,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。守护进程独立于控制终端并且周期性的执行某种发生的事件。

什么是linux守护进程

本教程操作环境:linux5.9.8系统、Dell G3电脑。

守护进程的定义

守护进程也称为精灵进程(Daemon),是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。

它独立于控制终端并且周期性的执行某种发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。

Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直接和用户交互。其他进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程(守护进程)不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。

下面们用ps axj命令查看系统中的进程。参数a 表示不仅列出当前用户的进程,也列出所有其他用户的进程; 参数x 表示不仅列出有控制终端的进程,也列出所有无控制终端的进程;参数j 表示列出与作业控制相关的信息。

(1)凡是TPGID一栏写着-1的都是没有控制终端的进程,也就是守护进程;

(2)在COMMAND一列用[ ]括起来的名字表示内核线程,这些线程在内核里创建,没有用户空间代码,因此没有程序文件名和命令行,通常采用以k开头的名字,表示Kernel;

(3)init进程我们已经很熟悉了,udevd负责维护/dev目录下的设备文件,acpid负责电源管理,syslogd负责维护/var/log下的日志文件;

(4)可以看出,守护进程通常采用以d结尾的名字,表示Daemon。

守护进程的特点

(1)在Linux中,每个系统与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端;

(2)当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,(脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断),它从被执行的时候开始运转,直到整个系统关闭才退出(当然可以认为是杀死相应的守护进程);

(3)如果想让某个进程不因为用户或中断或其他变化而影响,那么就必须把这个进程变成一个守护进程。

进程,进程组,会话,控制终端之间的关系

因为守护进程的创建需要改变这些环境参数,所以了解它们之间的关系很重要:

进程组:它是由一个或多个进程组成,进程组号(GID)就是这些进程中的进程组长的PID。

会话:其实叫做会话期(session),它包括了期间所有的进程组,一般一个会话期开始于用户login,一般login的是shell终端,所以shell终端又是此次会话期的首进程,会话一般结束于logout。对于非进程组长,它可以调用setsid()创建一个新的会话。

控制终端(tty):一般就是指shell终端,它在会话期中可有也可以没有。

创建守护进程

创建守护进程最关键的一步是调用setsid函数创建一个新的Session Leader。

#includepid_t setid(void);//该函数调用成功时返回新创建的Session的id(其实也就是当前进程的id),出错返回-1。
登录后复制

注意,调用这个函数之前,当前进程不允许是进程组的Leader,否则该函数返回-1。要保证当前进程不是进程组的Leader也很容易,只要先fork再调用setsid就行了。fork创建的子进程和父进程在同一个进程组中,进程组的Leader必然是该组的第一个进程,所以子进程不可能是该组的第一个进程,在子进程中调用setsid就不会有问题了。

成功调用该函数的结果是:

(1)创建一个新的Session,当前进程为Session Leader,当前进程的id就是Session的id;

(2)创建一个新的进程组,当前进程为进程组的Leader,当前进程的id就是进程组的id;

(3)如果当前进程原本有一个控制终端,则它失去这个终端,成为一个没有控制终端的进程。(所谓失去控制终端指的是,原来的控制终端仍然是打开的,仍然可以读写,但只是一个普通的打开文件,而不是控制终端了)。

如何杀死守护进程

1.首先ps axj | grep 守护进程名字,找到相应的守护进程,然后使用kill -9 守护进程名杀掉;

2.利用ps -ef命令查找相应的守护进程,再用kill -9命令将其杀死;

3.创建shell脚本对进程的启动、关闭、重启进行自动管理。

相关推荐:《Linux视频教程》

以上就是什么是linux守护进程的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1152098.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机按工作原理可分为什么

    计算机按工作原理可分为什么

    计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量...

  • 什么是电子版文件

    什么是电子版文件

    电子版文件是把纸质文档以计算机软件,如word、excel、pp、cad、photoshop等软件编辑出来,可以通过邮件、u盘、网络或其他传送方式传送的文件。本文操作环境:Windows7系统,DellG3电脑。电子版文件是把纸质文档以计...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • 周排行
  • 月排行
  • 年排行

精彩推荐