首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PF_NO_SETAFFINITY校验值

PF_NO_SETAFFINITY校验值
EN

Stack Overflow用户
提问于 2020-02-06 17:39:14
回答 1查看 370关注 0票数 1

是否可以判断进程/线程是否设置了PF_NO_SETAFFINITY标志?我正在一系列进程I上运行任务集,其中一些正在抛出以下形式的错误:

taskset: failed to set pid 30's affinity: Invalid argument

我相信这是因为有些进程有PF_NO_SETAFFINITY集(参见Answer)。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-06 17:41:29

是的-看看/proc/PID/stat的“标志”字段

代码语言:javascript
复制
<linux/sched.h

#define PF_NO_SETAFFINITY 0x04000000        /* Userland is not allowed to meddle with cpus_allowed */

有关使用/proc的详细信息,请参阅此处:

示例:

代码语言:javascript
复制
ps -eaf
www-data 30084 19962  0 07:09 ?        00:00:00 /usr/sbin/apache2 -k start
...

cat /proc/30084/stat
30084 (apache2) S 19962 19962 19962 0 -1 4194624 554 0 3 0 0 0 0 0 20 0 1 0 298837672 509616128 5510 18446744073709551615 1 1 0 0 0 0 0 16781312 201346799 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0

这些标志是4194624

Q:您介意指定如何根据是否允许设置关联来编写一个输出真/假的简单脚本吗?

答:如果没有机会来测试,我觉得很不舒服,但是你可以试试这样的东西.

代码语言:javascript
复制
flags=$(cut -f 9 -d ' ' /proc/30084/stat)
echo $(($flags & 0x40000000))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60100719

复制
相关文章

相似问题

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