一个守护进程的例子

news/2024/5/19 0:13:45 标签: signal

实现守护进程的完整实例(每隔10s在/tmp/dameon.log中写入一句话):

  =====================================================================

  #include<stdio.h>

  #include<stdlib.h>

  #include<string.h>

  #include<fcntl.h>

  #include<sys/types.h>

  #include<unistd.h>

  #include<sys/wait.h>

  #include <signal.h>

  #define MAXFILE 65535

  volatile sig_atomic_t _running = 1;

  int main()

  {

  pid_t pc;

  int i,fd,len;

  char *buf="this is a Dameon/n";

  len = strlen(buf);

  pc = fork(); //第一步

  if(pc<0){

  printf("error fork/n");

  exit(1);

  }

  else if(PC>0)

  exit(0);

  setsid(); //第二步

  chdir("/"); //第三步

  umask(0); //第四步

  for(i=0;i<MAXFILE;i++) //第五步

  close(i);

  signal(SIGTERM, sigterm_handler);

  while( _running ){

  if((fd=open("/tmp/dameon.log",O_CREAT|O_WRONLY|O_APPEND,0600))<0){

  perror("open");

  exit(1);

  }

  write(fd,buf,len);

  close(fd);

  usleep(10*1000); //10毫秒

  }

  }

  void sigterm_handler(int arg)

  {

  _running = 0;

  }


http://www.niftyadmin.cn/n/1713863.html

相关文章

D-Bus学习笔记

1. 进程间使用D-Bus通信 D-Bus是一种高级的进程间通信机制&#xff0c;它由freedesktop.org项目提供&#xff0c;使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信&#xff0c;同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率…

谈汽车CAN总线技术

围绕“汽车为什么选择了CAN总线技术&#xff1f;汽车CAN总线技术到底是怎么一回事&#xff1f;采用汽车CAN总线技术有哪些优点&#xff1f;汽车总线的发展趋势”等问题作了一个浅短的介绍&#xff1a; 1.汽车为什么选择了CAN总路线技术? 现在总线技术有很多种。从成本上讲&…

随笔——珍惜拥有的一切

今天晚上有个很不平常的经历&#xff0c;晚上打算去洗衣服&#xff0c;在收拾脏衣服的时候&#xff0c;不小心把眼镜碰掉了&#xff0c;为了赶紧洗衣服去&#xff0c;就没有戴眼镜&#xff0c;洗完后一戴眼镜发现不对劲&#xff0c;仔细一看原来是掉了一只镜片&#xff0c;因为…

Wine使用手册

转载&#xff1a;http://www.bitscn.com/linux/technic/200802/127277.html 用了段时间的UBUNTU&#xff0c;感觉很好&#xff01;可是工作的时候还是要用到 windows软件&#xff0c;于是乎&#xff0c;采取折中方案&#xff1a;安装UBUNTU下的WINE。 一直苦于没有一篇像样的…

Linux源码安装过程中选项—prefix的作用

在linux和unix环境中&#xff0c;源码安装是最常用的软件安装方式&#xff0c;一些软件除了提供源码外&#xff0c;也提供各种发行版的二进制安装包&#xff08;如基于redhat包 管理工具的rpm包&#xff09;&#xff0c;但强烈建议使用源码安装方式。原因是&#xff1a;&#x…

Ubuntu/Debian包管理命令大全(apt dpkg)

apt-cache search # ——(package 搜索包)apt-cache show #——(package 获取包的相关信息&#xff0c;如说明、大小、版本等)apt-get install # ——(package 安装包)apt-get install # —–(package –reinstall 重新安装包)apt-get -f install # —–(强制安装, “-f –fix…

Linux下ALSA声卡编程

一. 介绍 ALSA 标准是一个先进的linux声音体系。它包含内核驱动集合&#xff0c;API库和工具对Linux声音进行支持。ALSA 包含一系列内核驱动对不同的声卡进行支持&#xff0c;还提供了libasound的API库。用这些进行写程序不需要打开设备等操作&#xff0c;所以编程人员在写…

Linux下声卡驱动软件ALSA的安装与配置

几年以来&#xff0c;尽管Linux凭借开放、自由的特性和强大的性能&#xff0c;在全球服务器市场上所向披靡&#xff0c;占据越来越多的市场份额&#xff0c;但是若作为桌面软件&#xff0c;Linux的多媒体特性一直不能让人非常满意。比如&#xff0c;Linux系统自带的声卡驱动程序…