免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1913 | 回复: 2
打印 上一主题 下一主题

请教,守护进程daemon的困惑!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-29 15:56 |只看该作者 |倒序浏览

今有一个项目,需要一个模块负责minigui,一个模块负责网络通信,由网络向minigui发送操作指令。
在做网络模块的时候想为socket创建一个守护进程。在Linux系统中,如果要将一个普通进程转换成为守护进程,必须要执行下面的步骤:
  1. 调用函数fork()创建子进程,然后父进程终止,保留子进程继续运行。
  2. 保证进程不会获得任何控制终端。通常的做法是调用函数setsid()创建一个新的会晤期。
  3.信号处理。一般是要忽略掉某些信号
  4.关闭不再需要的文件描述符
  5.调用函数chdir("/")将当前工作目录更改为根目录。这是为了保证我们的进程不使用任何目录。
  6.调用函数umask(0)将文件方式创建屏蔽字设置为"0"。这是因为由继承得来

可程序执行到第一步的时候,父进程结束,子进程继续运行,但被推到后台运行,所以minigui模块也被带到后台了,也就没有办法做图形界面了。


正在郁闷中,请高手指教一下,看看有没有办法解决守护进程的困惑。

论坛徽章:
0
2 [报告]
发表于 2008-03-01 13:49 |只看该作者

回复 #1 hantor 的帖子

不一定非要用守护进程啊
简单的方式就是多线程, 主thread给GUI界面, 次thread用于接收和处理数据并将其送给GUI界面

论坛徽章:
0
3 [报告]
发表于 2008-03-01 21:35 |只看该作者

回复 #2 Kissfox 的帖子

你说的这个过程我已经做了,但你并没有明白我的意思。

我要守护的是socket通信。
在极端的情况下socket会挂掉的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP