Sous-routine wlm_classifier
Objectif
Détermine les classes auxquelles un processus est affecté.
Bibliothèque
Bibliothèque Workload Manager (libwlm.a)
Syntaxe
int wlm_classify ( config, attributes, class, len)
char *config;
char *attributes;
char *class;
int *len;
Descriptif
Le sous-programme Wlm_classifier doit être transmis le nom d'une configuration valide et un ensemble de processus Attributs dans un format identique au format du fichier Règles (règles d'affectation). Les noms des classes sont copiés dans la zone pointé par Classe. L'entier désigné par Len contient la taille de la zone de noms Classe sur l'entrée et le nombre de correspondances sur la sortie. Si la zone pointé par Classe n'est pas assez grande pour contenir les noms de toutes les correspondances potentielles, une erreur est renvoyée.
L'utilisation normale de la routine Wlm_classifier consiste à fournir explicitement tous les attributs de classification de processus: Nom d'utilisateur, Nom de groupe, Chemin d'accès de l'application, Typeet étiquette le cas échéant. Cela donne une correspondance à une seule classe. Pour implémenter des scénarios "if", l'interface vous permet de laisser certains des attributs non spécifiés à l'aide d'un trait d'union ('-') à la place. Cela peut conduire à plusieurs classes dont le processus peut être affecté, en fonction des valeurs des attributs non spécifiés. Si tous les attributs ne sont pas spécifiés, une erreur est renvoyée.
La chaîne Attributs est fournie dans un format identique au format des attributs dans le fichier Règles : une liste de valeurs d'attribut séparées par des espaces. L'ordre des attributs dans les règles d'affectation est:
- Réservé: doit être un tiret ('-')
- Nom d'utilisateur
- nom du groupe
- Chemin d'accès de l'application
- Type d'application
- tag
Chaque zone peut avoir au moins une valeur. Exclusion (!), les groupes de valeurs d'attribut ($), les listes séparées par des virgules et les caractères génériques ne sont pas autorisés. Pour la zone de type, l'opérateur AND "+" est autorisé, car un processus peut avoir plusieurs valeurs possibles pour l'attribut de type en même temps. Par exemple, un processus peut être un processus 32 bits et un appel plock, ou être un processus de priorité fixe 64 bits.
Voici des exemples de chaînes Attributs valides:
"- bob staff /usr/bin/emacs - -"
"- - - /usr/sbin/dbserv - _DB1"
"- - devlt - 32bit+fixed"
"- sally"Le (s) nom (s) de classe renvoyé (s) par la fonction dans la mémoire tampon class est qualifié complet et se termine par des noms de classe de type supername.subname.
Cette fonction ne requiert aucun privilège spécifique et peut être appelée par tous les utilisateurs.
Paramètres
| Article | Descriptif |
|---|---|
| configuration | Indique un pointeur vers une chaîne contenant le nom d'une configuration Workload Manager (WLM) valide (nom d'un sous-répertoire de /etc/wlm). Si une chaîne nulle ('\0') est donnée, la sous-routine Wlm_classifier utilise Courant comme configuration par défaut. Si la configuration est un ensemble de configurations temporelles, soit parce que Configuration ou Courant est un ensemble de configurations, le sous-programme s'appliquera aux configurations actuellement applicables de l'ensemble. |
| attributs | Indique l'adresse d'une chaîne, avec le format décrit ci-dessus, contenant une liste de valeurs pour les attributs de processus utilisés pour la classification automatique des processus. |
| class | Spécifie un pointeur vers une mémoire tampon où le nom de la classe que le processus peut être affecté est renvoyé sous forme de chaînes de caractères null consécutives. |
| len | Spécifie un pointeur vers un entier contenant la longueur en octets de la mémoire tampon pointé par Classe lors de l'appel de Wlm_classifier et le nombre réel de noms de classe copiés dans la mémoire tampon Classe lors du retour réussi. |
Valeurs renvoyées
Une fois l'exécution terminée, la sous-routine Wlm_classifier renvoie une valeur de 0. En cas d'erreur, une valeur non-0 est renvoyée.
Lorsqu'une valeur non-0 est renvoyée, le contenu de la mémoire tampon Classe et la valeur de l'entier désigné par Len ne sont pas spécifiés.
Codes d'erreur
Pour obtenir la liste des codes d'erreur possibles renvoyés par les fonctions d'API WLM, voir la description du fichier d'en-tête wlm.h .