ubuntu下编写开机自启守护进程,并记录进程信息到日志文件
来源:互联网 发布:软件开发行业标准 编辑:程序博客网 时间:2024/06/05 22:48
步骤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) //获取输出内容并保存在buf中 fprintf(fp,“%s\n”,buf); //以字符串的形式将buf中的内容写到fp指定的文件中 pclose(p); } fclose(fp); }}
步骤3:编译运行,设置开机启动
编译程序
命令行下执行:
gccprotect.c –o protect
得到可执行文件protect,再执行:
./protect
即可运行程序。
开机启动
安装sysv-rc-conf:
sudo apt-get installsysv-rc-conf
执行:
sudosysv-rc-conf 这里是你的程序名称 on
到这里就可以的,但重启之后你在终端会找不到这个程序的信息,但它其实在后台运行。
设置开机启动的另一种方法就是直接把启动命令写到/etc/rc.local文件里面。
- ubuntu下编写开机自启守护进程,并记录进程信息到日志文件
- Ubuntu下的守护进程的编写
- Linux下编写守护进程
- Linux下编写守护进程
- python下编写守护进程
- 开机自启动和多进程守护
- 编写守护进程,并使用守护进程按要求生成.log文件
- 在Ubuntu下安装nodejs4.x,并实现开机自动启动forever进程守护nodejs应用后台运行
- 在Ubuntu中和Android中添加开机自启动的守护进程
- 在Ubuntu中和Android中添加开机自启动的守护进程
- 在Ubuntu中和Android中添加开机自启动的守护进程
- 在Ubuntu中和Android中添加开机自启动的守护进程
- 【09.03.24】在Ubuntu中和Android中添加开机自启动的守护进程
- UNIX下守护进程(Daemon)的编写
- 编写守护进程下的多线程实例
- linux环境下的守护进程编写
- Python:Linux下守护进程编写
- linux 守护进程编写
- 基本算法全集OK
- UVaOJ10098---Generating Fast
- java笔记 IO流之字符流
- Hibernate 插入对象到数据库的同时返回该对象在数据库中生成的ID(自增)怎么做?
- 实验六
- ubuntu下编写开机自启守护进程,并记录进程信息到日志文件
- 【已解决】一个makefile中export出来的变量在另外一个makefile中无法访问
- 概率算法-均匀分布产生正态分布
- javascript中如何做对象的类型判断
- 什么是赚钱
- UVaOJ729---The Hamming Distance Problem
- 进制及其相关
- HttpURLConnection数据传输细节
- editplus 3 注册码