linux下使用c++创建守护进程
Posted 爱橙子的OK绷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下使用c++创建守护进程相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<iostream>
#include<fcntl.h>
#include<unistd.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<sys/stat.h>
using namespace std;
#define MAXFILE 65535
//实现一个守护进程:每隔5秒在/tmp/dameon.log中写入一句话
int main()
pid_t pc;
int i,fd,len;
//char *buf="this is a Dameon\\n";
string buf="this is a Dameon\\n";
//len = strlen(buf);
len=buf.size();
pc = fork(); /*第一步:创建子进程*/
if(pc<0)
printf("error fork\\n");
exit(1);
else if(pc>0)//父进程退出
exit(0);
setsid(); /*第二步:在子进程中创建新会话*/
char szPath[1024];
if(getcwd(szPath, sizeof(szPath)) == NULL)
//获得当前路径
perror("getcwd");
exit(1);
//printf("current working directory : %s\\n", szPath);
//chdir("/"); /*第三步:改变当前目录为根目录*/
chdir(szPath);
umask(0); /*第四步:重设文件权限掩码*/
for(i=0;i<MAXFILE;i++) /*第五步:关闭文件描述符*/
close(i);
while(1)
//if((fd=open("/tmp/dameon.txt",O_CREAT|O_WRONLY|O_APPEND,0600))<0)
if((fd=open("dameon.txt",O_CREAT|O_WRONLY|O_APPEND,0600))<0)
perror("open");
exit(1);
//write(fd,buf,len+1);
write(fd,buf.c_str(),len);//写入文件
close(fd);
sleep(5);
return 0;
相关命令:
ps aux | grep 文件名
kill -9 进程ID
以上是关于linux下使用c++创建守护进程的主要内容,如果未能解决你的问题,请参考以下文章