加载中…
个人资料
来一桶
来一桶
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,582
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

linux守护进程

(2012-03-19 21:39:03)
标签:

杂谈

分类: linux系统编程

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


#define FILE_NAME "/var/testlog"
#define OPEN_FLAG (O_RDWR|O_CREAT)
#define OPEN_MODE 00777

int main(void)
{
 pid_t pid = -1;
 pid_t cnt = -1;
 int   ret = -1;
 int i   = 0;
 int fd  = -1;

 
 pid = fork();

 if(0 < pid)
 {
  printf("parent: pid=%d ppid=%d\n", getpid(), getppid());
  
  exit(0);
 }

 if(0 == pid)
 {
  printf("child: pid=%d ppid=%d\n", getpid(), getppid());

  
  cnt = setsid();
  if(0 > cnt)
  {
   perror("setsid failed: ");
   goto _OUT;
  }

  
  chdir("/");

  
  umask(0);

  
  for(i = 0; i < 3; i++)
  {
   close(i);
  }
  

  //验证守护进程
  fd = open(FILE_NAME, OPEN_FLAG, OPEN_MODE);
  while(1)
  {
   if(-1 == fd)
   {
    perror("open failed: ");
    goto _OUT;
   }

   ret = write(fd, "howaylee", sizeof("howaylee"));
   if(-1 == ret)
   {
    perror("write failed: ");
    goto _OUT;
   }
   sleep(2);
  }
 }

_OUT:
 close(fd);
 return ret;
}

 

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有