Linux下的守护进程,以及自由设置的日志文件
来源:互联网 发布:java string gbk utf8 编辑:程序博客网 时间:2024/06/06 13:04
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<syslog.h>
#include<time.h>
void setdaemon()
{
pid_t pid,sid;
pid = fork();
if(pid < 0)
{
printf("fork failed\n");
exit(EXIT_FAILURE);
}
if(pid > 0)
{
exit(EXIT_SUCCESS);
}
if((sid = setsid()) < 0)
{
printf("setsid failed\n");
exit(EXIT_FAILURE);
}
/*
if(chdir("/") < 0)
{
printf("chdir failed\n");
exit(EXIT_FAILURE);
}
umask(0);
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
*/
}
void writelog(const char *log)
{
time_t tDate;
struct tm *eventTime;
time(&tDate);
eventTime = localtime(&tDate);
int iYear = eventTime->tm_year + 1900;
int iMon = eventTime->tm_mon +1;
int iDay = eventTime->tm_mday;
int iHour = eventTime->tm_hour;
int iMin = eventTime->tm_min;
int iSec = eventTime->tm_sec;
char sDate[16];
sprintf(sDate, "%04d-%02d-%02d", iYear, iMon, iDay);
char sTime[16];
sprintf(sTime,"%02d:%02d:%02d", iHour, iMin, iSec);
char s[1024];
sprintf(s,"%s %s %s\n", sDate, sTime, log);
FILE *fd = fopen("my.log", "a+");
fputs(s, fd);
fclose(fd);
}
int main()
{
setdaemon();
writelog("my daemon is start.");
sleep(1);
writelog("my daemon is end.");
return EXIT_SUCCESS;
}
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<syslog.h>
#include<time.h>
void setdaemon()
{
pid_t pid,sid;
pid = fork();
if(pid < 0)
{
printf("fork failed\n");
exit(EXIT_FAILURE);
}
if(pid > 0)
{
exit(EXIT_SUCCESS);
}
if((sid = setsid()) < 0)
{
printf("setsid failed\n");
exit(EXIT_FAILURE);
}
/*
if(chdir("/") < 0)
{
printf("chdir failed\n");
exit(EXIT_FAILURE);
}
umask(0);
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
*/
}
void writelog(const char *log)
{
time_t tDate;
struct tm *eventTime;
time(&tDate);
eventTime = localtime(&tDate);
int iYear = eventTime->tm_year + 1900;
int iMon = eventTime->tm_mon +1;
int iDay = eventTime->tm_mday;
int iHour = eventTime->tm_hour;
int iMin = eventTime->tm_min;
int iSec = eventTime->tm_sec;
char sDate[16];
sprintf(sDate, "%04d-%02d-%02d", iYear, iMon, iDay);
char sTime[16];
sprintf(sTime,"%02d:%02d:%02d", iHour, iMin, iSec);
char s[1024];
sprintf(s,"%s %s %s\n", sDate, sTime, log);
FILE *fd = fopen("my.log", "a+");
fputs(s, fd);
fclose(fd);
}
int main()
{
setdaemon();
writelog("my daemon is start.");
sleep(1);
writelog("my daemon is end.");
return EXIT_SUCCESS;
}
0 0
- Linux下的守护进程,以及自由设置的日志文件
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- Linux下的守护进程
- linux下的守护进程
- linux下的进程之-----守护进程
- Linux下守护进程的创建
- Linux下守护进程的创建
- Linux下守护进程的创建过程
- Linux下守护进程的创建例子
- 认识Linux下的守护进程
- Linux下学习守护进程的笔记
- linux环境下的守护进程编写
- 创建ORACLE JOB
- MySQL与Oracle 差异比较之八其它
- linux grep命令
- 缓存Memcached以及缓存策略
- 简单NFS服务器的搭建
- Linux下的守护进程,以及自由设置的日志文件
- 分布式文件系统MFS(moosefs)实现存储共享
- c_语法入门_day3
- Python语言需要注意的几个地方
- win7 下ffmpeg release 版本崩溃问题
- windows下的_mkdir 和 linux下的mkdir
- poj 2653 Pick-up sticks
- 在哪种情景下应该考虑使用JNDI技术
- 重载运算符