一个daemon的问题?

acqy 2003-12-19 02:40:46
在我的应用程序中是使用下面的方法使程序成为DAEMON的,可是运行后并没有在后台,用ps -ef看不到这个进程,为什么?

int ___g_init_daemon_FUNCTION (const char *path)
{
pid_t pid;
// if this is the main process
// then stop it
pid = fork();
if (pid > 0)
exit(1);
// if fork invoke failed
else if (pid < 0)
return RETURN_ERR;
// set the process to be
// the leader of the session
setsid ();
// fork again
pid = fork();
if (pid > 0)
exit(2);
else if (pid < 0)
return RETURN_ERR;
for (int i=0; i<NOFILE; i++)
close (i);
// set permission
chdir (path);
umask (0);
return RETURN_OK;
}
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
acqy 2003-12-30
  • 打赏
  • 举报
回复
非常感谢上面两位的回答!
linaxing 2003-12-19
  • 打赏
  • 举报
回复
方法非常标准。应该是主程序退出了,在___g_init_daemon_FUNCTION 调用的
后面加上sleep看看进程是否还在?
fierygnu 2003-12-19
  • 打赏
  • 举报
回复
不应该。是不是主程序退出了?

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧