我想确保脚本只能在某个不错的级别下运行。我四处寻找并没有找到一个很好的方法,所以我想出了这个:
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# use ps to get the niceness of the current process
# only look at the last line of output
# remove whitespace
readonly PRIORITY=$(ps -o '%n' $$ | tail -n 1 | tr -d '[[:space:]]')
if [[ "${PRIORITY}" -lt "10" ]]; then
exit 100
fi
这对我来说似乎很草率,如果有更简单的方法可以很好。我想我真的只想要一个小程序来返回当前进程的调度优先级,但我不想自己编写3行代码: - /
答案 0 :(得分:4)
GNU coreutils nice
命令的文档:
Usage: nice [OPTION] [COMMAND [ARG]...]
使用调整后的好处运行
COMMAND
,这会影响流程调度。 如果没有COMMAND
,请打印当前的好处。
但是,请注意
注意:你的shell可能有自己的nice版本,通常会取代它 这里描述的版本。请参阅您的shell文档 有关它支持的选项的详细信息。
如果你的shell确实有这样的内置行为,你想要使用通常的技术来运行二进制而不是内置。