如何在C中更改Solaris上的分叉进程的名称?

问题描述 投票:2回答:1

我有一个服务器应用程序,它会分叉几个子进程。当使用pstopprstat显示进程时,它们显示的完全类似于父进程。我可以通过他们的pidppid找出哪个是父母和孩子,但很快就会变得困难。我想略微更改子进程的名称,以便我可以快速查看哪些做了什么。

我尝试了几种在Linux上都有瑕疵的技巧,但它们并不适用于Solaris。有谁知道如何做到这一点,最好是在平原C.

c solaris
1个回答
1
投票

其中一种方法是为子进程创建一个真正的可执行程序,并从fork调用其中一个exec方法。

这样,分叉进程将被新的可执行文件“替换”。

这些方面的东西:

  pid_t child_pid = fork( );

  switch ( child_pid )
  {
  case -1:
    die( );
    return;

  case 0:
    // setup argv ...
    static const char* argv[] =
    {
      "prog_name",
      NULL
    };

    execv( *argv, (char**) argv );
    // No code should be executed beyond this point

    fprintf(
      stderr,
      "%s fork: execv failed: %d (%s)\n",
      argv[ 0 ],
      errno,
      strerror( errno )
    );

    die( );
    return;
  default:
    break;
 }
© www.soinside.com 2019 - 2024. All rights reserved.