【Linux】守护进程概述&cron守护进程实现定时任务

本文详细介绍了Linux守护进程的定义、特点、创建步骤,并通过代码示例展示了如何创建守护进程。同时,文章重点讲解了cron守护进程的工作原理,如何使用crontab命令配置定时任务,给出了多个具体的定时任务例子,包括向文件写入内容和向终端打印信息。
摘要由CSDN通过智能技术生成

本文内容概述:
1.守护进程的概念,特点,以及创建守护进程的代码实现。
2.两次fork的原因。
3.利用cron进程实现定时向终端打印数据的任务。


守护进程的定义:

守护进程是一种生存期长的进程。通常在系统引导装入时启动,仅仅在系统关闭时终止。他们没有控制终端,所以,是在后台运行的。


守护进程的特点:

我们知道,打开系统,操作系统会通过0号进程去执行相应的操作;1号进程是init进程,也是系统的守护进程,它主要负责启动各运行层次特定的系统服务。
守护进程没有控制终端,不能直接和用户进行交互;不受登录注销的影响,只受开关机的影响。守护进程的命名都会以d结尾。

系统中有很多的守护进程,比如:
cron进程,完成特定的定时任务(下文我还会用cron);
kswapd进程,内存换页的守护进程。
flush进程,在可用内存达到最小阈值来冲洗磁盘。


创建守护进程的步骤:

(1)将文件模式的屏蔽字设置为0;
(2)fork出子进程,终止父进程(保证创建守护进程的进程不是进程组的组长);
(3)调用setsid创建一个新的会话;
(4)将当前工作目录改为根目录;
(5)关闭不需要的文件描述符;
(6)忽略SIGCHLD信号。
当然创建守护进程的另外一个办法就是直接调用库里的daemon()接口实现。下边的代码都是按照以上的6个步骤进行完成的。


代码实现:

#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<sys/types.h>
void myDaemond()
{
    umask(0);
    pid_t id = fork();
    if(id < 0)
    {
        return ;
    }
    else if(id  > 0)
    {
        exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值