如何在Linux中为特定程序设置进程ID

2024-05-01

我想知道是否有某种方法可以在运行某些应用程序之前强制使用 Linux 的某些特定进程 ID。我需要提前知道进程ID。


实际上,有一种方法可以做到这一点。自内核 3.3 设置了 CONFIG_CHECKPOINT_RESTORE(在大多数发行版中设置)以来,/proc/sys/kernel/ns_last_pid 包含内核生成的最后一个 pid。所以,如果你想为fork程序设置PID,你需要执行以下操作:

  1. 打开/proc/sys/kernel/ns_last_pid并获取fd
  2. 使用 LOCK_EX 对其进行填充
  3. 写入PID-1
  4. fork

瞧!孩子将会有你想要的PID。 另外,不要忘记解锁(使用 LOCK_UN 进行锁定)并关闭 ns_last_pid。

你可以在我的博客上查看 C 代码here http://efiop-notes.blogspot.com/2014/06/how-to-set-pid-using-nslastpid.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Linux中为特定程序设置进程ID 的相关文章

随机推荐

  • 无法获取 https://gerrit.googlesource.com/git-repo/clone.bundle

    我尝试按照以下说明创建一个 git 存储库 source android com source downloading html installing repo 但是当我尝试在工作目录中初始化存储库时 使用 Ubuntu 出现以下错误 wo
  • “publish_actions”扩展权限是否可用于测试?

    我一直在尝试使用 publish actions 扩展权限来测试分数和成就 但是当我添加它时 它不会显示在 权限请求 页面中 就好像它被忽略了一样 我尝试了几种不同的方法 loginUrl facebook gt getLoginUrl a
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • 删除并加入同一个表

    是否可以执行连接同一个表的删除查询语句 我尝试过各种连接 内部 左侧 但没有运气 mysql 返回错误 我需要的例子 DELETE a FROM t1 AS a INNER JOIN t1 AS b USING some field b W
  • Docker容器总是显示ssl连接错误

    我正在开始使用 docker compose 并一直在研究简单的演示 Flask 应用程序 问题是 我在一个组织内部运行这个程序 该组织以左右抛出 SSL 错误的方式拦截所有通信 他们为我们提供了需要安装的三个根证书 我通常已经让这些证书在
  • Android NDK r5b外部构建和supc++链接问题

    我正在尝试在 Ubuntu 10 10 上使用 r5b NDK 为 Android 平台交叉编译我们的 C 代码库 使用 CMake 编译阶段成功 但是在 so 的最终链接阶段 有许多对 libsupc a 文件 我指定链接到的文件 中的符
  • 是否可以通过服务类型的实例实例化 WebServiceHost,而无需无参数构造函数?

    我正在尝试创建自托管System ServiceModel Web WebServiceHost NET 4 但是我遇到了构造函数的问题 有以下三种选择 WebServiceHost 一个无参数的构造函数似乎毫无意义 因为无法指定服务的类型
  • HashSet 中的并行流不并行运行

    我有想要并行处理的元素集合 当我使用List 并行性有效 但是 当我使用Set 它不并行运行 我编写了一个代码示例来显示该问题 public static void main String args ParallelTest test ne
  • PHP foreach 和 glob() 函数

    PHP 版本 5 2 我的功能不起作用 服务器中的图像 位于文件夹 public html gallery images 有什么帮助吗 我做错了什么 我得到的错误是 警告 第 2 行 home a9773555 public html ga
  • 将命名参数传递给调用非 mutate 函数的函数

    我正在尝试做一些非常类似的事情here https community rstudio com t passing named list to mutate and probably other dplyr verbs 2553 11 本质
  • 处理 Kotlin 协程中自定义 okhttp 拦截器抛出的异常

    我正在使用自定义Interceptor与我的 Android 应用程序中的 Retrofit 客户端一起 在某些特定情况下会引发异常 我正在尝试使用 Kotlin 协程使其工作 问题是我无法处理前面提到的错误 因为在拦截器实例中抛出异常的那
  • 运行 py.test 时出现错误 ImportMismatchError

    当我在本地运行测试时 它工作正常 但是在创建 docker 并在容器内运行后 我收到以下错误 usr local lib python3 5 site packages pytest config py 325 in getconftest
  • 如何加入数据框(来自数据集的集合)?

    我正在寻找并找出最好的加入方式nSpark 数据帧 Example List df1 df2 df3 dfN 哪里都df有一个我可以参加的约会 递归 像这样 List df1 df2 df3 dfN reduce a b gt a join
  • Lua userdata:无法同时进行数组访问和方法

    我遇到了这个人的问题 Lua userdata数组访问及方法 https stackoverflow com questions 26970316 lua userdata array access and methods 其中 当我设置用
  • Oracle 求两个时间戳的平均值

    我不明白这有多难 但我似乎无法在任何地方找到解决方案 它是针对日期完成的 但我看不到让它适用于时间戳 我正在尝试做 select avg last timestmp ref timestmp as average from param 它一
  • 查找椭圆或贝塞尔曲线上的等距点

    目前我正在编写 JavaScript 代码 将对象放置在屏幕上的椭圆上 我试图找到能够解决这个问题之一的算法 椭圆将是完美的 但如果它太昂贵 贝塞尔曲线也可以 抱歉 但不幸的是我的数学不允许我使用我找到的答案 https mathoverf
  • ffmpeg通过添加框或边框来扩展(而不是调整大小)视频大小

    假设我有一个特殊分辨率的视频 例如 1280x718 我想将其更改为 1280x720 但我宁愿只在顶部和底部添加一行 而不是将 718 像素垂直插值到 720 所以基本上 我正在寻找一种方法告诉 ffmpeg 创建 1280x720 的输
  • 二维高斯函数不能产生正确的结果

    我想写一个返回一个的函数np array尺寸的nx x ny包含具有均值的中心高斯分布mu and sd sig 下面的代码在某些情况下有效 但在许多情况下无效 有什么问题或者我还应该写什么来获得我需要的东西 import matplotl
  • PHP 按值对数组进行分组

    我有一个像这样的数组 Array 0 gt ing 1 ing 1 gt ing 1 amount 2 gt ing 1 det 3 gt ing 1 meas 4 gt ing 2 ing 5 gt ing 2 amount 6 gt i
  • 如何在Linux中为特定程序设置进程ID

    我想知道是否有某种方法可以在运行某些应用程序之前强制使用 Linux 的某些特定进程 ID 我需要提前知道进程ID 实际上 有一种方法可以做到这一点 自内核 3 3 设置了 CONFIG CHECKPOINT RESTORE 在大多数发行版