Ich denke, Ihre C++ - Anwendung kann die Thread-Priorität festlegen, weil auf dem Host es die Requi hat red linux Fähigkeit cap_sys_nice
Alle Linux-Funktionen auf dem Host kann capsh --print
Hier innen Docker conatiner mit diesem Befehl herausgefunden werden Sie diese Fähigkeit mit --cap-add
Option einstellen müssen.
docker run -it --rm --cap-add SYS_NICE ubuntu bash
Wenn es nicht funktioniert hat versuchen, dieses
docker run -it --rm --userns host --cap-add SYS_NICE ubuntu bash
Da könnte es ohne --userns
Option einige Probleme sein, wie hier erwähnt https://github.com/moby/moby/issues/25622
Im schlimmsten Fall: Wenn irgendetwas davon nicht funktioniert dann versuchen, Container mit --privileged
Option ausführen, das wird alle Linux-Funktionen zu diesem Container hinzufügen, obwohl es nicht ist t empfohlen.
Probieren Sie es aus.
Möglicherweise verwandt: [CoreOS - pthread_create Priorität Thread gibt EPERM zurück, wenn als root ausgeführt wird] (https://github.com/coreos/bugs/issues/410). – jweyrich
@jwerich: Sieht aus wie das gleiche Problem, aber kein Code-Beispiel, wie überprüft werden kann, ob ein Prozess die Fähigkeit hat oder nicht. –
Rechts. Ich nehme an, dass Ihr Container auf CoreOS läuft. Ist es nicht? Es sieht aus wie ein Fehler in CoreOS. – jweyrich