Дочірній процес успадковує будь-яке 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 () створює новий процес шляхом дублювання процесу виклику. Новий процес, який називають дочірнім, - це точний дублікат процесу виклику, який називається батьківським, за винятком наступних пунктів:
- У дитини є свій унікальний ідентифікатор процесу, і цей PID не відповідає ідентифікатору будь-якої існуючої групи процесів (setpgid (2)).
- Ідентифікатор батьківського процесу дитини такий самий, як ідентифікатор батьківського процесу.
- Дитина не успадковує блоків пам'яті свого батька (mlock (2), mlockall (2)).
- Використання ресурсів процесу (getrusage (2)) та лічильники часу процесора (раз (2)) у дитини скидаються до нуля.
- Набір дитини відкладених сигналів спочатку порожній (вивіска (2)).
- Дитина не успадковує коригування семафору від свого батька (semop (2)).
- Дитина не успадковує блоки записів від свого батьківського (fcntl (2)).
- Дитина не успадковує таймери від свого батька (setitimer (2), alarm (2), timer_create (2)).
- Дитина не успадковує видатні асинхронні операції вводу / виводу від свого батька (aio_read (3), aio_write (3)), а також не успадковує жодного асинхронного контексту вводу / виводу від свого батька (див. Io_setup (2)).
fork
реалізації.