首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux中更改特定应用程序的进程id

如何在linux中更改特定应用程序的进程id
EN

Stack Overflow用户
提问于 2014-09-24 22:16:00
回答 1查看 1.8K关注 0票数 0

我知道这可以在用户空间中完成,这已经得到了在此之前的回答。

但是,我希望能够使用内核函数/模块来完成这个任务。

UPDATE c代码(来自其他已回答的问题)是criu项目的一部分。并且文件并不存在于所有系统中。因此,代码不适用于ubuntu。有什么办法可以让它在ubuntu上工作吗?

,我的最后一个目标是:叉一个进程,并给它父进程的ID。

Steps:盯着进程名P和id x。

  1. 从P中分叉一个进程,命名为子进程Q。
  2. 为父进程P分配一个临时id,例如a。
  3. 更改子进程q的id并将其设置为x。
  4. 另一个核函数将重新连接儿童进程Q.的父母身份,使P的父母成为Q的父进程,换句话说,子进程将获得其父进程的身份。
  5. 进程P死掉了,因为它没有等待任何进程。

我知道怎么做4-5步。我已经实施了。我正在侵入另一个Linux内核项目。所以,我没有别的办法。我必须这样做。

谢谢大家。

EN

回答 1

Stack Overflow用户

发布于 2014-10-01 06:42:59

内核假定进程是由它的pid标识的;如果不更改内核中的大量代码,则更改已经运行的进程的pid不太可能有效。

若要给进程q与进程P相同的pid,请使用第三个进程R,该进程R在P结束后但在Q启动之前设置ns_last_pid。(有关如何使用ns_last_pid,请参见这个例子。)

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

https://stackoverflow.com/questions/26027455

复制
相关文章

相似问题

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