关于守护进程的程序无法运行(新手)解决方法
发布时间:2011-06-27 17:43:00 文章来源:www.iduyao.cn 采编人员:星星草
关于守护进程的程序无法运行(新手)
为什么我把守护进程和获取时间封装成函数就不能实现?
//实现功能:每隔10s 写 日期时分秒 到log文件中
//
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <time.h>
#include <unistd.h>
#define LOG_FILE "log.txt"
#define MODE "a+"
void Daemon()
{
int i;
const int MAXFD = 64;
if(fork() != 0)
{
exit(0);
}
setsid();
chdir("/");
umask(0);
for(i = 0; i < MAXFD; i ++)
{
close(i);
}
}
void GetTime()
{
FILE *fp = fopen(LOG_FILE, MODE);
if(NULL == fp)
{
perror("fopen");
return;
}
char *wday[] = {"Sum", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
fprintf(fp,"%d-%d-%d", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday);
fprintf(fp,"%s%d:%d:%d---n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
fclose(fp);
}
int main()
{
Daemon();
while(1)
{
GetTime();
sleep(10);
}
return 0;
}
------解决方案--------------------
nanosleep({10, 0}, 0xbffff4c4) = 0
open("./log.txt", O_RDWR|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
write(2, "fopen: Permission deniedn", 25) = -1 EBADF (Bad file descriptor)
跟踪发现是open出错了, 权限不足, 原因我想了一下, 发现是因为chdir到/了, 需要root权限, 你用root身份运行就可以了, 或者chdir不要切到/目录, 切一个有权限的目录即可.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在ubuntu下怎么播放swf 和csf 文件?
虽然,firefox 可以播放swf文件,但是没有托动条。
在ubuntu下怎么播放swf和 csf文件?
哪个高...
-
2011年最新录制的Linux(CentOS)视频教程
电驴地址:http://www.verycd.com/topics/2875873/
------解决方案--------------------
l...
-
求《操作系统:设计与实现》pdf
A.S.Tanenbaum写的《操作系统设计与实现》,有上下册,谁有的,帮个忙,非常感谢。qifeifei@live.cn
----...
-
linux用户态内存的物理地址问题?
小弟我看linux内存管理一段时间了。有一个问题一直不解。 linux用户态进程使用0—3G的线性地址...
-
安装linux chm阅读器 xchm
[root@localhost ~]# yum install chmlib
[root@localhost ~]# yum install wxGTK
[root@localhost ~]...
-
都说Linux是开源的,在哪可以找到Linux的源码?
都说Linux是开源的,在哪可以找到Linux的源码?
烦请各位高手指点一二,谢谢。
------解决...
-
求解2个概念,书上没找到,急用,谢谢大家
1.Unix中磁盘文件和设备文件的异同点。
2.Unix中原子和竞争的概念。
求正解,因为考试可能会考...
-
有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装步骤
有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装...
-
用什么学习函数库?
我们现在学习LINUX 编程,读程序时候有很多头文件,代码中有许多库函数。
#include <sys/types.h>
#include <wait....
-
linux下c语言写的shell,花了不少时间写得 有兴趣的可以看看,本人linux初学者
http://download.csdn.net/source/2799757
------解...