#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 线程
void sigterm_handler(int arg) 进程
{ string
_running = 0; it
} io
int main() class
{ 终端
pid_t pc; 权限
int i, fd,len; grep
char* buf = “My dameon\n”; 程序
len = strlen(buf);
pc = fork();//建立子线程
if(pc<0)
{
printf("error fork\n");
exit(1);
}
else if (pc >0)
exit(0);
//让进城摆脱原会话的控制
//让进程摆脱原进程组的控制
//让进程摆脱原控制终端的控制
setsid();//
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毫秒
}
此程序每10毫秒将buf写入文件
关闭时 用ps -ef|grep 得到进程号 而后 kill