Projekte bieten eine Möglichkeit, Beschränkungen für die Ressourcennutzung für verschiedene Benutzer und Gruppen durchzusetzen. Sie können verwendet werden, um die Anzahl der Dateien, die ein Prozess öffnen kann, die maximale Dateigröße, die CPU-Nutzung, die Speicherzuweisung und mehr zu beschränken.Jeder Prozess und Benutzer gehört zu einem oder mehreren Projekten. Das anfängliche Projekt eines Benutzers wird beim Login bestimmt und ist entweder default oder das Projekt, das im Abschnitt Benutzereigenschaften dieses Moduls festgelegt ist. Benutzer können zu verschiedenen Projekten wechseln, indem sie den Befehl newtask verwenden.
Jedes Projekt hat eine Liste von Benutzern und Gruppen, die darauf zugreifen dürfen, zum Beispiel durch Wechseln zu diesem mit dem Befehl newtask. Nur weil ein Benutzer Mitglied eines Projekts ist, bedeutet dies jedoch nicht zwangsläufig, dass er beim Login automatisch zu diesem gehört - dies muss im Abschnitt Benutzereigenschaften festgelegt werden.
Die wichtigsten Attribute eines Projekts sind die Ressourcengrenzen, die für die Mitgliederbenutzer gelten. Jede hat die folgenden Attribute :
- Ressource
- Die Ressource, die sie steuert, wie process.max-file-descriptor für die maximale erstellbare Dateigröße oder process.max-cpu-time für die Menge an CPU-Zeit, die ein Prozess verbrauchen kann.
- Ressourcentyp
- Bestimmt, wer diese Ressourcengrenze ändern kann, und ist fast immer auf Privilegiert gesetzt. Dieses Attribut ist optional - wenn <None> ausgewählt wird, gilt stattdessen die systemweite Grenzwerteinstellung für die Ressource. Die Bedeutungen der anderen Optionen sind:
- Privilegiert - Kann nur von privilegierten (Superuser-) Aufrufern geändert werden.
- System - Wird für die Dauer der Betriebssysteminstanz festgelegt.
- Basis - Kann vom Eigentümer des aufrufenden Prozesses geändert werden.
- Obergrenze
- Die Obergrenze für die Nutzung, die ein Prozess verbrauchen darf, bevor die Aktion ausgelöst wird. Dies wird in Bytes, Sekunden oder Anzahl der Threads eingegeben, je nach Ressourcentyp.
- Aktion bei Überschreitung
- Bestimmt, was mit einem Prozess passiert, der die Grenze überschreitet. Typischerweise ist dies auf Verweigern gesetzt, was einfach dazu führt, dass der Systemaufruf, der versucht hat, die Grenze zu überschreiten, fehlschlägt. Es können jedoch auch Optionen verwendet werden, um ein Signal an den betreffenden Prozess zu senden.