回答:
子プロセスnice
は、フォークされた時点で親によって保持されている値(例では5
)を継承します。
ただし、nice
子プロセスをフォークした後に親プロセスの値が変更された場合、子プロセスは新しいnice
値を継承しません。
これは監視ツールで簡単に確認できますtop
。場合はnice
、フィールド(NI)は、デフォルトでは表示されません、あなたは押すことによって、それを追加することができますf
し、選択しますI
。これにより、NI
列がtop
表示に追加されます。
* I: NI = Nice value
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1937 root 20 0 206m 66m 45m S 6.2 1.7 11:03.67 X
からの良い情報 man 2 fork
fork()は、呼び出しプロセスを複製して新しいプロセスを作成します。子と呼ばれる新しいプロセスは、以下の点を除いて、親と呼ばれる呼び出しプロセスの正確な複製です。
- 子には独自の一意のプロセスIDがあり、このPIDは既存のプロセスグループ(setpgid(2))のIDと一致しません。
- 子の親プロセスIDは、親のプロセスIDと同じです。
- 子は、親のメモリロック(mlock(2)、mlockall(2))を継承しません。
- プロセスリソース使用率(getrusage(2))およびCPU時間カウンター(times(2))は、子でゼロにリセットされます。
- 子の保留シグナルのセットは、最初は空です(sigpending(2))。
- 子は、親(semop(2))からセマフォ調整を継承しません。
- 子は、親(fcntl(2))からレコードロックを継承しません。
- 子は、親(setitimer(2)、alarm(2)、timer_create(2))からタイマーを継承しません。
- 子は、親(aio_read(3)、aio_write(3))から未処理の非同期I / O操作を継承せず、親から非同期I / Oコンテキストも継承しません(io_setup(2)を参照)。
fork
実装の子プロセスに継承されます。