2016-06-17 3 views
0

Gibt es eine Möglichkeit, die für einen laufenden Prozess verfügbaren Ressourcen von Python zu ändern? Nämlich möchte ich ändern Max open filessoft: hard begrenzen.Ändern der für die Prozesse verfügbaren Ressourcen von Python

Ich weiß, ich kann ulimit -n 1024000 und spawn Prozess von dieser Shell verwenden, aber das würde erfordern, diesen Prozess vorher zu stoppen.

Ich kenne auch prlimit, aber es ist nicht verfügbar in Wheezy 7.6 mit util-linux 2.20.1-5.3.

Python resource Modul scheinbar ermöglicht Grenzen nur für sich selbst zu ändern ...

ich habe folgende blog article gefunden, die erklärt, wie es mit gdb zu tun, und ich hoffe nur, dass etwas in Python ähnlich existiert.

Im Wesentlichen denke ich, ich frage, wie man setrlimit System-Aufruf für einen laufenden Prozess aus dem Python-Programm.

Antwort

1

Werfen Sie einen Blick auf die Bibliothek resource. Die Funktion resource.prlimit() nimmt ein pid als erstes Argument und löst ProcessLookupError aus, wenn ein Prozess mit dieser ID nicht gefunden werden kann. Also ich glaube es ist genau das was du suchst.

resource.prlimit(pid, resource[, limits])

Kombiniert setrlimit() und getrlimit() in einer Funktion und unterstützt die Ressourcen Grenzen eines beliebigen Prozess zu erhalten und eingestellt. Wenn pid 0 ist, gilt der Aufruf für den aktuellen Prozess. [...]

Wenn limits nicht angegeben ist, gibt die Funktion das Ressourcenlimit des Prozesses pid zurück. Wenn limits angegeben wird, wird das Ressourcenlimit des Prozesses festgelegt und das vorherige Ressourcenlimit zurückgegeben.

Der Haken ist, dass diese Funktion in Python 2.7 nicht vorhanden ist. Hoffentlich können Sie Ihre Zehen in Python 3 für diese eine Aufgabe tauchen.

+0

Entschuldigung, vielleicht habe ich meine Frage falsch markiert. Es sollte auch von 'python2.7' funktionieren, daher habe ich Fragetags aktualisiert. Aber danke, es ist gut zu wissen, dass 'python3' diese Funktionalität hat. –

+0

Ich habe gerade festgestellt, dass es von Python 2.7 nicht verfügbar ist. Bearbeitung. – alexis

+0

Du solltest sowieso auf python 3 wechseln, aus vielen anderen Gründen ... :-) – alexis

Verwandte Themen