proc_mobility_base_set Subroutine
Zweck
Setzt oder löscht Attribute, die von AIX® Live Update verwendet werden, um anzuzeigen, dass der aktuelle Prozess einbasefür den DB-IASP wird ausgeführt.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <sys/mobility.h>Beschreibung
Die Subroutine proc_mobility_base_set kann verwendet werden, um den aufrufenden Prozess alsbaseProzess für eine Live-Update -Operation.
Basisprozesse sind Prozesse, die während einer Liveaktualisierung nicht gespeichert und migriert werden. Die Basisprozesse verbleiben auf der ursprünglichen logischen Partition (LPAR) und werden nicht auf die Ersatz-LPAR migriert.
Nur ein Prozess, der einchildderinitProzess kann als registriert werdenbasefür den DB-IASP wird ausgeführt. Andernfalls FehlercodeEINVALwird zurückgegeben.
Die Subroutine proc_mobility_base_set kann verwendet werden, um einebaseProzess nur während eines Live Kernel Update (LKU) in Bearbeitung. Wenn keine LKU in Bearbeitung ist, FehlercodeEAGAINwird zurückgegeben
Parameter
| Element | Beschreibung |
|---|---|
| pid | Prozess-ID, auf die reagiert werden soll. Der Wert 0 gibt den aktuellen Prozess an. Wenn ein Wert ungleich null angegeben wird, muss er mit der PID des aufrufenden Prozesses übereinstimmen. |
| flag | Das Flag MOBILITY_BASE_PROCESS legt das Basisattribut fest. Der Wert 0 wird verwendet, um die Festlegung des Basisattributs aufzuheben. |
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Erfolg |
| 1 | Fehler |
Fehlercodes
| Fehlercode | Beschreibung |
|---|---|
| ENOSYS | Kein Mobilitätssystem vorhanden. |
| ESRCH | Ein solcher Prozeß ist nicht vorhanden. |
| EINVAL | Eingabeargumente sind ungültig. |
| EAGAIN | Keine LKU, in Bearbeitung |
Beispiel
#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);
}