当前位置: 首页 > 面试题库 >

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

龙俊美
2023-03-14
问题内容

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


问题答案:

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

  1. 打开/ proc / sys / kernel / ns_last_pid并获取fd
  2. 用LOCK_EX植绒
  3. 写PID-1
  4. 叉子

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

你可以在我的博客检出的C代码在这里。



 类似资料:
  • 问题内容: 如果启动了Java程序,它将在系统进程中监视名称java。许多Java程序很难区分。因此,如果存在设置名称的方法,它将很好地显示在过程监视器中。我知道这在不同的操作系统上可能会有所不同。 一个简单的方法是,如果java解释器支持设置名称的开关,如下所示: 但是我找不到这样的开关,因此它可能不存在。Java中设置进程名称的API也可以。 那么,您有什么建议吗? 问题答案: 我不知道这是否

  • 问题内容: 是否有一种编程方法来为Linux操作系统的c / c ++设置进程的CPU关联性? 问题答案: 您需要使用。 例如,仅在CPU 0和2上运行: (第一个参数表示当前进程,如果要控制其他进程,则提供PID)。 另请参阅。

  • 或许您会这样想,Linux 命令的句型确实不难,但是那么多命令,我怎么知道它们都是作什么的呢?而且不同的系统中,可以使用的命令似乎也不太一样,这真让人困惑…… 其实 Linux 的命令,运行的是 Linux 系统中的程序。只要您已安装了程序,您就可以通过命令来运行它,并且可以使用选项来精细的调整它的运行状态。也可以通过点击启动图标来运行,不过启动图标不能够方便的调整选项,并不是很方便。 举一个例子

  • 问题内容: 我试图使用tomcat 目录关闭tomcat 。但是发现服务器没有正确关闭。因此,我无法重新启动 。tomcat在port上运行。 我想杀死正在运行的tomcat进程。我首先要具有在特定端口(8080)上运行的进程的列表,以便选择要杀死的进程。 问题答案: 使用命令 使用作为用途作为他们的流程。 它将显示带有端口号和进程ID的进程列表 之前的数字是进程ID。现在使用命令杀死进程 意味着

  • 问题内容: 有什么办法可以在Linux中设置线程的名称? 我的主要目的是在调试时会有所帮助,并且如果通过例如暴露该名称也很好 问题答案: 将功能与选项一起使用(请参阅docs)。 请注意,旧版本的文档有些令人困惑。他们说 设置调用进程的进程名称 但是由于线程是Linux上的轻量级进程(LWP),因此在这种情况下,一个线程就是一个进程。 您可以使用或使用以下命令查看线程名称: 或在之间的: 或从GD

  • 如何设置进程数 进程数是由count属性决定的(windows系统不支持进程数设置),例如下面代码 use WorkermanWorker; require_once __DIR__ . '/Workerman/Autoloader.php'; $http_worker = new Worker("http://0.0.0.0:2345"); // ## 启动4个进程对外提供服务 ## $ht