Mein spezielles Szenario ist das folgende. Ich starte einen Docker-Container mit einem bestimmten cpuset:
docker run --cpuset-cpus="0-2" # ...
In diesem Container führe ich ein Shell-Skript als Einstiegspunkt aus und dieses Shell-Skript wird makeirgendwann ausgeführt. Ich würde gerne herausfinden, wie viele Jobs ( -j) wären. Ich könnte natürlich die Anzahl der zugewiesenen CPUs durch die Umgebung leiten, aber eine automatische Erkennung wäre sehr bevorzugt.
Ich weiß, dass ich das für den aktuellen Prozess verwenden taskset -c -p $$oder cat /proc/self/status | grep Cpus_allowed_listabrufen Cpus_allowedkann, aber ich weiß nicht, wie ich die tatsächliche Anzahl der zulässigen CPUs abrufen kann. Ich würde es gerne vermeiden, die Ausgabe dieser Befehle zu analysieren oder mit der Cpus_allowedMaske zu fummeln , aber ich werde es tun, wenn keine Optionen mehr verfügbar sind.
nproc- Anzahl der verfügbaren Verarbeitungseinheiten drucken