fs.mqueue.msg_maxを増やす必要があることを確認して実行します。

fs.mqueue.msg_maxを増やす必要があることを確認して実行します。

bashスクリプトを使用してプログラムを実行する必要があります。プログラムには、デフォルトのメッセージキューよりも大きいメッセージキューが必要な場合があります。

これにより、これを増やすことができることがわかります。

sudo sysctl fs.mqueue.msg_max=3000

たとえば、次のように確認できます。

echo  "$(sysctl fs.mqueue.msg_max)"

たとえば、次のように印刷されます。fs.mqueue.msg_max = 100"

ifしきい値より小さい場合は、サイズを大きくする条件を作成する必要があります(そうでない場合は何もしません)。

私はそれが次のようになると期待しています:

queue_size=$(sysctl fs.mqueue.msg_max)

if (($queue_size < 3000))
then
    sudo sysctl fs.mqueue.msg_max 3000
else
    echo "message queue large enough at $queue_size"
fi

しかし、これは以下を返します。

((: fs.mqueue.msg_max = 200 < 3000: syntax error: invalid arithmetic operator (error token is ".mqueue.msg_max = 200 < 3000")

受け取ったオブジェクトqueue_sizeはキューサイズではなく、私が理解していない操作方法を知らないオブジェクトです。

ベストアンサー1

出力から数字を抽出するだけです。次の方法でこれを実行できますawk

queue_size=$(sysctl fs.mqueue.msg_max | awk -F= '{print $2}')

またはcut:

queue_size=$(sysctl fs.mqueue.msg_max | cut -d= -f2)

あるいは、単にbashパラメータ拡張を使用してください。

queue_size=$(sysctl fs.mqueue.msg_max)
queue_size=${queue_size#*=}

おすすめ記事