LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 888|回复: 9

Help, Daemon failed!

[复制链接]
发表于 2003-8-2 09:53:28 | 显示全部楼层 |阅读模式
I writed a daemon program, using the daemon_init() function, giving by the UNIX Network Programming Vol1[Stevens 1998]. But
it exited after this function was called! And when I debuged it with
gdb, I found it exited normally just in this call. Even did the daemon() system call!
I'm very puzzled. Could someone who give me a explaination for detail?
Thanks a lot!

P.S. My kernel is 2.4.18-14(RH8.0)
发表于 2003-8-2 10:11:26 | 显示全部楼层
 楼主| 发表于 2003-8-2 11:43:57 | 显示全部楼层
kj501大哥,我看不了啊。:(
发表于 2003-8-2 12:02:52 | 显示全部楼层
不会吧,我这里好好的。
发表于 2003-8-2 12:35:07 | 显示全部楼层
应该是没注册。
 楼主| 发表于 2003-8-2 12:47:21 | 显示全部楼层
libinary兄:
没注册是什么意思?

UNIX网络编程里的daemon_init():

  1. void daemon_init(/*const char* pname, int facility*/)
  2. {
  3.         int i;
  4.         pid_t pid;

  5.         if ((pid = fork()) != 0)
  6.                 exit(0);

  7.         setsid();
  8.        
  9.         signal(SIGHUP, SIG_IGN);

  10.         if ((pid = fork()) != 0)
  11.                 exit(0);

  12.         /*daemon_proc = 1;*/

  13.         chdir("/");

  14.         umask(0);

  15.         for (i = 0; i < MAXFD; i++)
  16.                 close(i);

  17.         /*open(pname, LOG_PID, facility);*/
  18. }
复制代码

应该没有任何问题的。何况系统调用daemon(0, 0);也应该没错。
真的不理解啊。
发表于 2003-8-2 13:02:43 | 显示全部楼层
啊,我不是说这个,我是说你看不到chinaunit.net的帖子的问题。
 楼主| 发表于 2003-8-2 13:05:40 | 显示全部楼层
哦谢谢。现在已经注册了,可以看了。
不过我先前是看过APUE和UNPv1的相关部分的。
觉得代码应该是没有问题的。但它就是退出——我都快晕S了。
发表于 2003-8-2 19:16:42 | 显示全部楼层
守护进程是脱离终端的。所以要查看错误信息,只能写到文件里。你可以在文件中加入一些打印语句,输出到某个文件中,来看看发生了什么事情。
发表于 2003-8-2 19:27:25 | 显示全部楼层
这里有一个例子:
http://www.linuxforum.net/books/upfaq/x682.htm
我觉得楼主对linux编程不熟悉,这个FAQ以后多看看:
http://www.linuxforum.net/books/upfaq/book1.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表