守护进程(Daemon process)

守护进程是Linux系统中的后台服务进程,独立于控制终端,常用于长期执行任务或响应事件。如inetd和httpd服务器即由守护进程实现。通过`ps axj`命令可查看守护进程。它们通常以超级用户身份启动,无控制终端且终端进程组ID为-1。
摘要由CSDN通过智能技术生成

什么是守护进程?
守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。
Linux 的大多数服务器就是用守护进程实现的。比如,Internet 服务器 inetd,Web 服务器httpd 等。
如何查看守护进程, 在终端敲:ps axj
a 表示不仅列当前用户的进程,也列出所有其他用户的进程
x 表示不仅列有控制终端的进程,也列出所有无控制终端的进程
j 表示列出与作业控制相关的信息
守护进行的一些特点:
守护进程基本上都是以超级用户启动( UID 为 0 )
没有控制终端( TTY 为 ?)
终端进程组 ID 为 -1 ( TPGID 表示终端进程组 ID)
创建一个守护进程的代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/param.h> 
#include <sys/types.h>
#include <sys/stat.h>


int main(int argc, char const *argv[])
{
	//1)为了防止守护进行在没有运行起来前,控制终端受到干扰退出或挂起。
	signal(SIGTTOU,SIG_IGN);
	signal(SIGTTIN,SIG_IGN);
	signal(SIGTSTP,S
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值