1

特定の適切なレベル以下でのみスクリプトを実行できるようにしたいと考えています。いろいろ調べたのですが、いい方法が見つからなかったので、以下の方法を思いつきました。

#!/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行のCコードを自分で書きたくありません:-/

4

1 に答える 1