Sous-routine proc_mobility_base_set
Objectif
Définit ou désélectionne les attributs utilisés par AIX Live Update pour indiquer que le processus en cours est un processusbaseindépendant BD automatisé.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#include < sys/mobility.h >Descriptif
La sous-routine proc_mobility_base_set peut être utilisée pour enregistrer le processus appelant en tant quebasepour une opération Live Update .
Les processus de base sont ceux qui ne sont pas sauvegardés et migrés lors d'une opération Live Update . Les processus de base sont laissés sur la partition logique d'origine, au lieu d'être migrés vers la partition logique de substitution.
Seul un processus qui est unchilddeinitLe processus peut être enregistré en tant quebaseindépendant BD automatisé. Sinon, code d'erreurEINVALest renvoyé.
La sous-routine proc_mobility_base_set peut être utilisée pour enregistrer unbasetraiter uniquement lorsqu'une mise à jour de noyau opérationnelle (LKU) est en cours. S'il n'y a pas de LKU en cours, code d'erreurEAGAINest renvoyé
Paramètres
| Article | Descriptif |
|---|---|
| PID | ID de processus sur lequel agir. La valeur 0 indique le processus en cours. Si une valeur différente de zéro est spécifiée, elle doit correspondre au PID du processus appelant. |
| option | L'indicateur MOBILITY_BASE_PROCESS définit l'attribut de base. La valeur 0 est utilisée pour annuler la définition de l'attribut de base. |
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| 0 | Succès |
| 1 | Erreur |
Codes d'erreur
| Code d'erreur | Descriptif |
|---|---|
| ENOSYS | Aucun système de mobilité n'est en place. |
| ESRCH | Aucun processus de ce type. |
| EINVAL | Arguments d'entrée non valides. |
| EAGAIN | Aucun LKU, est en cours |
Exemple
#include <stdio.h>
#include <sys/mobility.h>
int main(int argc, char *argv[])
{
int rc = 0;
pid_t pid = getpid();
/* Mark this process as a base process */
rc = proc_mobility_base_set(0, MOBILITY_BASE_PROCESS);
if (rc) {
printf(“proc_mobility_base_set failed, errno %d\n”, errno);
exit(-1);
}
printf(“Process %d is now marked as a base process.\n”, pid);
}