等待使用任务集创建的进程完成

wait for process completion created with taskset

我正在根据 linux manual page 使用任务集,以便 运行 仅在特定内核上处理非常密集的任务。

任务集被封装在一个循环中。每次选择一个新的目标目录并且任务都在运行。 运行 多次并行处理可能会导致致命结果。

伪代码如下:

#!/bin/bash
while :
do
  target_dir=$(select_dir) # select new directory to process
  sudo taskset -c 4,5,6,7,8,9,10,11 ./processing_intense_task --dir $target_dir
done

如果任务集实际上等待进程完成,我在文档中找不到任何内容。
如果不等待,如何在启动新实例之前等待任务完成 processing_intense_task?

the documentation if taskset actually waits for the process to finish.

Taskset执行exec,所以就变成了command。 https://github.com/util-linux/util-linux/blob/master/schedutils/taskset.c#L246

这与其他类似命令相同,例如 nice ionice

If it does not wait,

好吧,从技术上讲,任务集不会等待,它本身就是命令。

how do I wait for the task completion before starting a new instance of processing_intense_task?

您只需等待任务集进程完成,因为它与命令的进程相同。 IE。什么都不做。