linux记录进程日志,守护进程Xinted和日志记录Syslogd

本文介绍了如何在Linux中创建守护进程,包括让init进程成为父进程、调用setsid、更改工作目录、关闭文件描述符等步骤。同时,文章详细讲解了超级守护进程Xinetd的工作原理和优点。对于守护进程的日志管理,文章提到了syslogd如何接收并记录其他守护进程的信息,以及syslog的配置文件和工作原理。通过对syslog.conf的配置,可以实现日志的安全性和远程传输。
摘要由CSDN通过智能技术生成

1 创建守护进程

1.让init进程成为新产生进程的父进程。

调用fork函数创建子进程后,使父进程立即退出。这样,产生的子进程将变成孤儿进程,并被init进程接管,同时,所产生的新进程将变为在后台运行。

2.调用setsid()

使得新创建的进程脱离控制终端,同时创建新的进程组,并成为该进程组的首进程。

进程组  & 会话  & 控制终端

进程组是一个或多个进程的集合,进程组ID是由领头进程的进程号决定的。

会话是一个或多个进程组的集合,与进程组类似,每个会话都存在一个领头进程。

当用户从终端登录系统,系统会创建一个新的会话。在该终端上启动的进程都会被系统划归到会话的进程组中。

会话中的进程通过该会话中的领头进程与一个终端相连。

由于守护进程不需要控制终端,因此,必须创建新的会话,以脱离父进程的影响,Linux系统提供了setsid函数用于创建新的会话,并使得调用setsid函数的进程成为新会话的领头进程。

setsid()调用成功后,进程成为新的会话组长和新的进程组长,并与原来的登录会话和进程组脱离。

此时进程没有控制终端,但要防止其以后打开控制终端,可以通过使进程不再成为会话组长来禁止进程重新打开控制终端:

if(pid=fork())

exit(0);

3.更改当前工作目录

使用fork函数产生的子进程将继承父进程的当前工作目录。当进程没有结束时,其工作目录是不能被卸载的。为了防止这种问题发生,守护进程一般会将其工作目录更改到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值