首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Posix_Spawn在BusyBox中启动UDHCPC守护进程。

使用Posix_Spawn在BusyBox中启动UDHCPC守护进程。
EN

Stack Overflow用户
提问于 2014-05-14 07:16:12
回答 1查看 1K关注 0票数 0

我使用posix_spawn从可执行文件"/sbin/udhcpc“运行线程,如下所示:

代码语言:javascript
复制
char* argv[] = {(char*)UDHCPC_EXECUTABLE_FILE, (char*)"-s", (char*)UDHCPC_NOTIFIER,
                                                   (char*)"-i", (char*)INTERFACE_NAME,
                                                   (char*)"-p", (char*)UDHCPC_PID,
                                                   NULL};
char* envp[] = {NULL};
int status;

// Start UDHCPC daemon (lock DaemonProcess against concurrent modifications)
{
  CMutex lock(&self->m_ConnectionStatusLock);

  status = posix_spawn(&self->m_DaemonProcess, UDHCPC_EXECUTABLE_FILE, NULL, NULL, argv, envp);

  if (status != 0)
  {
     cout<<"UDHCPC daemon start failed (%s)"<<endl;

  }

}

我的问题是:

当我使用命令行"PS“时,为了查看新进程的PID,我看到第一个posix派生程序创建了一个udhcpc线程(一个很快消失的僵尸线程),然后是一个具有变量"argv”配置的永久进程。

因此,问题是,在变量进程Deamon "m_DaemonProcess“中,我得到了僵尸进程的PID。这正常吗。如何直接得到永久过程的PID?

请帮忙谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 10:11:44

udhcpc客户端应该接受一个-f--foreground选项,这会导致它不执行自己的叉-exec,这就是为什么得到临时pid的原因。

您还使用了pidfile选项,因此您也可以读取该内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23647968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档