获取正在运行的bash脚本的CORE ID

时间:2011-12-07 18:45:02

标签: bash

我正在尝试编写一个脚本,可以输出执行脚本的核心ID。

我已经找到了一个可以实现我的目标的系统调用getCPU。 但是,我不知道如何调用此系统调用并使其在bash脚本中运行。

任何帮助都会感激不尽!

丹尼斯

2 个答案:

答案 0 :(得分:1)

除非您已采取措施将流程固定到特定核心,否则调度程序会在其认为合适时移动它。因此,每次安排流程时,都可能会发生变化。

在Linux上使用内核&gt; = 2.2.8,您可以通过查看/proc/<PID>/stat文件找到该进程上次运行的核心。有关更多信息,请访问PROC(5)手册页。可以使用简单的awk脚本来获取相关信息,例如如果你的shell是PID 2338那么

awk '{print $39}' /proc/2338/stat

将打印shell上次运行的CPU编号。如果您在多核/ CPU系统上多次运行awk脚本,您应该会看到该进程从核心移动到核心。

如果要将进程的关联性设置为特定核心(或核心组),则可以使用taskset命令。

taskset -p 1 2338

将设置进程与核心0的亲和关系,-p 3 2338将设置与核心0和1等的关联。

答案 1 :(得分:-1)

ps -eaf | grep $$

这将列出父级,然后使用awk来获取它