esub#

系统命令#

esubeexec - 作业提交和执行时的外部可执行文件

概要#

CB_SERVERDIR/esub

CB_SERVERDIR/eexec

CB_SERVERDIR一般为:/opt/skyformai/sbin

描述#

管理员可以编写这些外部提交 (esub) 和执行 (eexec) 可执行文件,以对作业执行特定于站点的操作。

CB_SERVERDIR一般为:/opt/skyformai/sbin

提交作业时(参见 csubcrestart ),如果在 CB_SERVERDIR 中找到 esub,则会执行 eexec。在执行主机上,eexec 会在作业启动、完成以及启动检查点时运行。环境变量 LS_EEXEC_T 分别设置为 STARTENDCHKPNT,以指示何时调用 eexec。如果 esub 需要向 eexec 传递一些数据,esub 可以 简单地将数据写入标准输出;eexec 可以通过其标准输入获取数据。 因此,AIP 实际上是在“esub | eexec”中实现了管道。

在设置作业的环境变量后,eexec 会以用户身份执行。父作业进程会等待 eexec 完成后再继续执行;因此,eexec 预计会完成。

调用 eexec 的进程的 pid 存储在环境变量 CB_JOBPID 中。如果 eexec 旨在监视作业的执行情况,则 eexec 必须 fork 一个子进程,然后让父 eexec 进程退出。在监视作业执行的同时,eexec 子进程应定期通过测试 CB_JOBPID 变量来检查作业进程是否仍然处于活动状态。作业完成后,eexec 子进程应退出。

除了 csub 和 crestart 之外,cmod 还会调用 esub。调用 esub 时,环境变量 CB_SUB_ABORT_VALUECB_SUB_PARM_FILE 会被设置。如果 esub 退出时返回 CB_SUB_ABORT_VALUE 的值,则作业请求将被中止。 CB_SUB_PARM_FILE 指定包含作业请求参数的临时文件的名称。有关此文件的内容,请参阅 PARAMETER FILE 部分。CB_SUB_ABORT_VALUECB_SUB_PARM_FILE 变量的典型用途是禁用某些提交选项。

在交互式远程执行中调用 esub 时,CB_SUB_ABORT_VALUECB_SUB_PARM_FILE 变量未定义。

esub 可以通过写入环境变量 CB_SUB_MODIFY_FILE 指定的文件来更改任何作业选项。例如:

#!/bin/bash
# esub 修改 -R 选项的示例
source $CB_SUB_PARM_FILE         # 环境变量中获得所有作业提交参数
echo 'CB_SUB_RES_REQ="select[mem>100]"' > $CB_SUB_MODIFY_FILE # 修改csub -R 参数
exit 0

请注意,参数值需要用双引号括起来。

参数文件#

作业提交和修改参数文件包含一行,格式为 option_name=value,用于指定每个作业选项。value 为“SUB_RESET”表示此选项已被 cmod 重置。如果 esub 是 Bourne Shell 脚本,则运行“.$CB_SUB_PARM_FILE”将使 esub 可以使用这些变量。option_name 包括:

CB_SUB_JOB_NAME

为指定的作业名称(csub -J)。

CB_SUB_QUEUE

为指定的队列名称(csub -q)。

CB_SUB_IN_FILE

为指定的标准输入文件名(csub -i | -is)。

CB_SUB_OUT_FILE

为指定的标准输出文件名(csub -o | -oo)。

CB_SUB_ERR_FILE

为指定的标准错误文件名(csub -e | -eo)。

CB_SUB_ADDITIONAL

为指定的 additional_esub_information(csub -a)。

CB_SUB_EXCLUSIVE

为“Y”表示独占执行(csub -x)。

CB_SUB_NOTIFY_END

为“Y”,表示作业结束时发送邮件通知 (csub -N)。

CB_SUB_NOTIFY_BEGIN

为“Y”,表示作业开始时发送邮件通知 (csub -B)。

CB_SUB_USER_GROUP

表示指定的用户组名称(csub -G)。

CB_SUB_CHKPNT_PERIOD

表示指定的检查点周期(csub -k)。

CB_SUB_CHKPNT_DIR

表示指定的检查点目录(csub -k)。

CB_SUB_COMMANDNAME

表示作业命令的第一个参数 (csub作业命令第一个词)。

CB_SUB_COMMAND_LINE

表示作业命令及其参数。使用 vncsub/dcvsub 提交作业时,此变量会被省略。

CB_SUB_RESTART_FORCE

为“Y”表示强制重启作业(crestart -f)。

CB_SUB_RESTART

为“Y”表示重启作业(crestart)。

CB_SUB_RERUNNABLE

为“Y”表示可重新运行作业(csub -r)。

CB_SUB_HOST_SPEC

表示指定的主机规范。

CB_SUB_DEPEND_COND

表示指定的依赖条件(csub -w)。

CB_SUB_RES_REQ

表示指定的资源需求字符串(csub -R)。

CB_SUB_PRE_EXEC

表示指定的预执行命令(csub -E)。

CB_SUB_LOGIN_SHELL

是指定的登录 shell(csub -L)。

CB_SUB_MAIL_USER

是指定的发送电子邮件的用户(csub -u)。

CB_SUB_MODIFY

为“Y”表示修改请求(cmod)。

CB_SUB_MODIFY_ONCE

为“Y”表示修改一次请求(cmod)。

CB_SUB_PROJECT_NAME

是指定的项目名称(csub -P)。

CB_SUB_INTERACTIVE

为“Y”表示交互式作业(csub -I)。

CB_SUB_PTY

为“Y”表示支持 PTY 的交互式作业(csub -Ip)。

CB_SUB_PTY_SHELL

为“Y”表示支持 PTY Shell 的交互式作业(csub Is)。

CB_SUB_HOSTS

是执行主机名列表(csub -m)。

CB_SUB_NUM_PROCESSORS

是请求的最小处理器数量(csub -n)。

CB_SUB_MAX_NUM_PROCESSORS

是请求的最大处理器数量(csub -m)。

CB_SUB_BEGIN_TIME

为开始时间,以秒为单位,自 1970 年 1 月 1 日 00:00:00 GMT 时间起计算(csub -b)。

CB_SUB_TERM_TIME

为终止时间,以秒为单位,自 1970 年 1 月 1 日 00:00:00 GMT 时间起计算(csub -t)。

CB_SUB_OTHER_FILES

为“SUB_RESET”,以指示正在执行 cmod 操作以重置要传输的文件数(csub/cmod -f)。

CB_SUB_OTHER_FILES_nn

nn 是指示特定文件传输的索引号。 是指定的文件传输表达式。例如,对于“csub -f “a > b” -f “c < d””,定义如下:

CB_SUB_OTHER_FILES_0="a > b"
CB_SUB_OTHER_FILES_1="c < d"
CB_SUB_RLIMIT_CPU

是指定的 CPU 限制(csub -c)。

CB_SUB_RLIMIT_FSIZE

是指定的文件大小限制(csub -F)。

CB_SUB_RLIMIT_DATA

是指定的数据大小限制(csub -D)。

CB_SUB_RLIMIT_STACK

是指定的堆栈大小限制(csub -S)。

CB_SUB_RLIMIT_CORE

是指定的核心文件大小限制(csub -C)。

CB_SUB_RLIMIT_RSS

是指定的驻留大小限制(csub -M)。

CB_SUB_RLIMIT_RUN

是指定的挂钟运行限制(csub -W)。

CB_SUB2_CWD

是指定的当前工作目录(csub -cwd)。

CB_SUB2_JOB_DESC

是指定的作业描述(csub -Jd)。

CB_SUB2_APP

是指定的应用程序名称(csub -A | -app)。

CB_SUB2_JOB_GROUP

是指定的作业组名称(csub -g)。

另请参阅#

csubcrestartcmod