proc_mobility_restartexit_set 子例程

用途

设置或取消设置AIX®实时更新使用的属性,以指示当前进程是一个exit on restart过程。

标准 C 库 (libc.a)

语法

#include <stdio.h>

#include <sys/mobility.h>

int  proc_mobility_restartexit_set (pid, value, flag),
pid_t pid;
int value;
int flag
;

描述

proc_mobility_restartexit_set 子例程可用于将调用进程注册为exit on restart实时更新 操作的过程。 该exit on restart进程在原始逻辑分区 (LPAR) 上冻结,但实时更新 操作不会检查它们的状态。 将在替代 LPAR 上重新创建这些进程。 当它们重新启动时,它们将调用 exit () 函数并终止。 没有必须保留的特定状态信息的应用程序可以选择此方法。 无需这些应用程序即可释放移动性操作不支持的资源。 如果这些应用程序由守护程序机制监视,那么出口可能会导致在替代 LPAR 上启动新实例。

根据指定的标志,可以标记进程exit on restart用于 实时更新 操作和/或工作负载分区迁移操作。

参数

描述
pid 要对其执行操作的进程标识。 值 0 指示当前进程。 如果指定非零值,那么它必须与调用进程的 PID 匹配。
value MOBILITY_RESTART_EXIT 标志用于设置exit on restart属性。 值 0 用于取消设置exit on restart属性。
标记 属性的作用域为:
PROC_MOBILITY_GLOBAL
如果进程是exit on restart针对 实时更新 操作
PROC_MOBILITY_WPAR
如果进程是exit on restart用于工作负载分区 (WPAR) 迁移。

返回值

描述
0 成功
1 错误

错误代码

错误代码 描述
ENOSYS 没有建立流动制度。
ESRCH 没有这样的进程。
EINVAL 输入参数无效。

示例

以下示例显示了 proc_mobility_restartexit_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 “exit on restart” for  live update */
	rc = proc_mobility_restartexit_set(0, MOBILITY_RESTART_EXIT, PROC_MOBILITY_GLOBAL);

	if (rc) {
		printf(“proc_mobility_restartexit_set failed, errno %d\n”, errno);
		exit(-1);
	}

	printf(“Process %d is now marked to exit on restart during an AIX live update.\n”, pid);

}