如何将自己的功能函数添加给linux系统

本文讨论了如何在Linux系统中实现一个定时任务功能,使其能够在系统启动后自动执行,同时不影响其他系统功能。通过创建守护进程,确保任务在系统运行期间持续执行直至系统关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        突然间想到一个问题:自己写一个功能函数,比如闹铃,给其响的时间是某一时刻,每天系统开启后让系统自己调用闹铃功能,

到响铃时自动响铃,对其他的任何系统功能不造成影响,怎么办。

        然后就随便写了一个函数测试了一下:

#include <unistd.h>

int main(void)
{
    while( 1 );
    
    return 0;
}

又写了一脚本haifeng.sh,在/etc/pofile文件里面添加了运行haifeng.sh,结果傻眼了,系统停在了while( 1 );起不来了。

搞好系统后想了一下,把上面的进程改成了守护进程:

#include <stdio.h>
#include <unistd.h>

int main(void)
{
    pid_t ID;

    int  Fd;

    ID = fork( );
    if( ID == 0 )
    {

    ID = setsid( );
    if( ID < -1 )
    {
        printf( "%s\r\n", strerror( errno ) );
        exit( -1 );
    }
    
    chdir( "/" );

    Fd = open( "/dev/null", O_RDWR, 0 );
    if( Fd != -1 )
    {
        dup2( Fd, STDIN_FILENO );
        dup2( Fd, STDOUT_FILENO );
        dup2( Fd, STDERR_FILENO );
        if( Fd > 2 )
        {
            close( Fd );
        }
    }

    umask( 0027 );
        while( 1 );
    }
    
    return 0;
}
呵呵呵,结果可以了,没有影响到系统的运行。

把上面的while部分用一实现铃声的监测功能就可以了,这样每次系统起来后就会运行/etc/profile文件,然后就会调用到上面的文件,文件父进程over了

,子进程成了父进程为init的守护进程,直到系统over,该进程才over。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值