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 >

int  proc_mobility_base_set (pid , flag),
pid_t pid;
int flag
;

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

L'exemple suivant illustre les utilisations de la sous-routine proc_mobility_base_set :
#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);

}