我最近在脚本中遇到了一个错误,我尝试执行以下操作:
yum -y install another_package.x86_64 some_package.x86_64 && run_my_script
Run Code Online (Sandbox Code Playgroud)
该脚本在较新的 CentOS 上运行良好,但是当我尝试在 Cent OS 5 上执行它时,some_package.x86_64
它不可用。但是,而不是错误和停止yum
只是打印消息:
No package some_package.x86_64 available.
Run Code Online (Sandbox Code Playgroud)
如何yum
在这种情况下强制出错(IMO 应该是默认值)以使我的脚本更健壮?
我的具体情况如下。我使用特定的cpuset启动一个docker容器:
docker run --cpuset-cpus="0-2" # ...
Run Code Online (Sandbox Code Playgroud)
在该容器内,我运行一个 shell 脚本作为入口点,该 shell 脚本将make
在某个时候运行。我想弄清楚有多少工作(-j
)。我当然可以通过环境传递已分配 CPU 的数量,但更喜欢自动检测它的方法。
我知道我可以使用taskset -c -p $$
或cat /proc/self/status | grep Cpus_allowed_list
检索Cpus_allowed
当前进程的 ,但我不知道如何检索允许的 CPU 的实际数量。我想避免解析这些命令的输出或摆弄Cpus_allowed
掩码,但会在没有选项时这样做。