88526


IOもプロセスも優先度を最低にしてコマンドを実行したいとします。  
niceとioniceを同時に使用することは可能なのでしょうか？

下記記事では以下の方法が紹介されていました。  
<https://qiita.com/sion_cojp/items/04a2aa76a1021fe77079>

[code]

    $ ionice -c 2 -n 7 nice -n 19 <CMD>
    
[/code]

パッと見、ioniceコマンドで指定したIOの優先度はniceコマンドに設定されて、niceコマンドが呼び出す`<CMD>`は通常のIO優先度で実行されそうに見えるのですが、そうではないのでしょうか？  
niceコマンドが呼び出すプロセスにも優先度が引き継がれる？  
このあたりの子プロセスへの優先度引き継ぎについても解説いただけると助かります。


CC BY-SA 4.0
2022-04-22T04:05:42.060
88448
2022-04-27T03:40:31.650
17238
question
linux
niceとioniceは併用できるのか


回答がなかなかつかないようなのでウチの hpux11.11 の場合

`nice` で下げた優先順位は子プロセスにも孫プロセスにも引き継がれます（上昇させるには `root` 権限が必要）なので

`nice sh -c top` と起動した場合  
\- `nice` が起動するのは `/bin/sh` で、この `sh` の nice 値は 30  
\- `/bin/sh` が子プロセスとして `/usr/bin/top` を起動するが（`nice` から見て `top` は孫プロセス）その `top`
も nice 値 30

コメント欄より  
`nice ls | top` と起動したなら `nice` の対象は `ls` のみ (`top` は対象外)  
`nice sh -c "ls|top"` と起動したなら `ls` も `top` も (`sh` も) `nice` 対象

# そうでないと `nice make` したら `make` が起動する `cc` や `ld` が全力運転になってしまうので、ほぼまったく意味がない

hpux11.11 には `ionice` ないので確認できないけど、まあ常識的には同じ仕様であることが期待できると思われます。


CC BY-SA 4.0
2022-04-27T03:40:31.650
88526
2022-04-27T03:40:31.650
8589
88448
answer