Используйте systemd
обработку процессов или используйте контрольную группу
вручную для управления зоопарком потомков . Дурацкая игра с выводом ps (1)
и файлами PID предрасположена к гонке и, как известно, приводит к раннему облысению из-за выдергивания волос.
Ejecutando algunas pruebas rudimentarias, también veo esto en 10.13.4.
Escribí un pequeño programa en C llamado looper que hacía algunas operaciones matemáticas básicas en un bucle infinito:
#include <stdio.h>
int main(){
unsigned long long prev = 0;
unsigned long long current = 1;
unsigned long long total = 0;
while(1){
total = current + prev;
prev = current;
current = total;
printf("%llu\n", total);
}
}
Ejecuté varias copias de esto en mi caja de FreeBSD y las examiné usando htop(1)
. Usando renice(8)
pude ver que el valor de Niza se incrementaba, el valor de Prioridad se incrementaba y el porcentaje de CPU disminuía -el comportamiento esperado.
Ejecuté el mismo programa en macOS 10.13.4 y repetí el proceso. Si bien pude ver que el valor de Niza aumentaba, el valor de Prioridad y el porcentaje de CPU se mantuvieron constantes.
Me pregunto si es un error, no he tenido motivos para mirar tan de cerca los valores de Niza en macOS antes -el comportamiento ha sido lo suficientemente cercano a lo que esperaba que no me he inclinado a investigar.
Si tiene una cuenta de desarrollador, valdría la pena informar esto a Apple.