ubuntu下编写开机自启守护进程,并记录进程信息到日志文件

本文详细介绍了如何在Ubuntu系统下编写一个守护进程,记录其运行信息到日志文件,并设置为开机自启。包括使用chdir函数指定日志路径,通过gcc编译运行,利用sysv-rc-conf配置开机启动,以及将启动命令添加到/etc/rc.local文件中。
摘要由CSDN通过智能技术生成

步骤1:编写守护进程

void init(){
 pid_t pid;
 int i;
 pid=fork();        //创建第一子进程
 if(pid<0) exit(1);//创建失败退出
 if(pid>0) exit(0);//父进程退出
 setsid();         //第一子进程成为领头进程,脱离终端
 pid=fork();   //第一子进程生成第二子进程
 if(pid<0) exit(1);//创建失败退出
 if(pid>0) exit(0);//第一子进程退出
 chdir("/home/ling/文档");//切换目录
 umask(0);               //改变文件创建掩码
 for(i=0;i<NOFILE;i++)  //关闭文件流
  close(i);  
}

注意这里chdir函数中的路径就是日志文件的保存路径。

步骤2:记录进程信息到日志文件

void main(){
char buf[256];
FILE *fp,*p;
init();
while(1){
    sleep(30);                                           //每30s记录一次
    if((fp=fopen(“test.log”,“a”))>=0){                   //打开文件test.log,参数a表示以追加的形式打开
        p=popen(“ps-eopid,user,cmd,start_time,etime”,“r”);//将指针p连接到ps命令的标准输出
        while(fgets(buf,sizeof(buf),p)!=0)     
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值