[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
OpenVMS 用户手册
16.4 连接虚拟终端上的断开进程如果允许虚拟终端但已失去调制解调器线路连接,那么一个进程作为断开虚拟终端的进程在系统上保持活动。必须在系统管理员指定的时段内 (默认值是 900 秒或 15 分钟) 重新连接这个进程。如果在这个时间满期之前不能重新连接到这个进程,那么系统就删除这个进程。
16.4.1 终端断开终端可以在以下环境中断开:
如果进程已断开,您有机会重新连接这个旧进程,并且返回到它在断开之前的状态。注册时,系统提示如下:
如果按下 Return 键或者输入 Yes,您就从当前进程注销,就好象自动执行 DCL 命令 CONNECT/CONTINUE。如果输入 No 或者如果在回答时延迟太久 (以致发生应答期超时),那么保持注册新进程。就不能连接到旧的进程。
当您有多个断开对话期时,系统就会提示您输入想要重新连接的虚拟终端名。如果不想连接任何显示的对话期,输入 No。 在一定的间歇时间之后,系统自动除去断开的进程。然而,如果直接注销任何断开的进程,就可以保存系统资源,如下所示:
16.4.3 管理断开进程虚拟终端允许您每次维护一个以上断开的进程。然而,必须紧记,当注册到虚拟终端时,物理终端是断开的。任何指引到不是当前虚拟终端进程关联的物理终端的设备的 I/O 请求将进入等待状态。当超时满期时,暂挂进程将终止。然而,如果您重新连接到接收该 I/O 请求的物理终端,那么这个进程将从进入等待状态的位置继续。用与其上下文相关的名称命名每个进程,可以更容易重新连接要求的进程。 例如,一个运行编辑文件进程的用户 SMITH 可以使用 SET PROCESS/NAME 命令命名该进程为 SMITH_EDIT。以后,要继续编辑,SMITH 可以容易地确定哪个进程是适当的。
系统管理员可以全系统地或基于每个终端地限制虚拟终端的使用。 批量作业是非交互进程。因为批量作业在自己的进程中执行,您可以有两个或更多的进程同时做不同的事情。例如,可以使用批量作业来:
16.5.1 提交批量作业提交批量作业时,系统使用您的帐户和进程特征建立一个分离进程。系统从该进程运行此作业,并且当作业完成时删除这个进程。系统也执行系统注册命令过程 (SYLOGIN.COM) 和您的注册命令过程 (LOGIN.COM),然后执行在批量作业中的命令过程。当这些过程执行时,输出将写入日志文件。当批量作业完成时,可以打印这个日志文件,或者把它保存在您的一个目录中。 要按批量模式运行作业,就可输入 DCL 命令 SUBMIT 把作业提交到一个批队列 (一个等待执行的批量作业列表)。当提交作业时,它被指引到默认批队列 SYS$BATCH,把它附加到等待执行的作业队列的末端。当前面的作业完成时,就执行您的作业。在 OpenVMS 系统中,可以同时执行批量作业的数目由系统管理员在建立这个批队列时指定。按照默认,SUBMIT 命令使用文件类型 .COM。 在以下例子中,命令把 JOB1.COM 放入 SYS$BATCH:
系统显示作业名、包含该作业的队列和为该作业分配的项号。在把作业提交到批队列之后,您接收到这个 DCL 提示。如果需要在任何 DCL 命令 (如 DELETE/ENTRY) 引用您的批量作业,就使用作业的项号。(使用 SHOW ENTRY 命令,可以获得作业项号。) 注意,如果在批量作业中提交多个过程,那么当任何过程带出错或致命的 (严重的) 系统消息退出时,该批量作业将终止。 批量作业不必在把它提交到批队列时开始运行。要指定不同时间,输入 SUBMIT/AFTER 命令。在以下例子中,作业在 11:30 P.M. 之后提交:
把命令过程提交为批量执行时,系统保存这个命令过程的完整文件说明,包括版本号。如果把命令过程提交之后要更新它,那么批量作业执行提交命令过程的原有版本,而不是新版本。 因为注册的默认目录通常不是在命令过程中存取文件所需要的默认目录,因此使用以下方法之一确保存取正确的文件:
批量作业执行时,它把输出写入日志文件。按照默认,日志文件与提交的命令过程同名,但文件类型为 .LOG。作业完成时,系统打印日志文件并从您的目录删除它。有关保存日志文件的详情,请参阅 16.5.3 节。 每次提交批量作业时,系统执行您的注册命令过程。执行批量作业时使用 F$MODE 词法函数测试批量作业,可以包括或省略部分注册命令过程。 在以下例子中,注册命令过程包括互相排斥地用于批量作业的命令、逻辑名和符号。这段标号为 BATCH_COMMANDS,并且以下命令包括在注册命令过程的开始:
提交批量作业时,要阻止系统执行注册命令过程的任何命令,把以下命令放在过程的开始:
可以把这个命令放在注册命令过程的任何位置。提交批量作业时,系统只执行注册命令过程中的上述命令。 输入 SUBMIT 命令时,在一个作业中可以指定要执行的几个命令过程。除非使用 /NAME 限定词指定名称,否则 SUBMIT 命令使用第一个命令过程的名称作为作业名。注意,如果一个出错引起作业中的任何命令过程退出,那么整个作业终止。 批量作业执行时,第一个过程 (UPDATE.COM) 的操作上下文不保留给第二个过程 (SORT.COM)。在 SORT.COM 执行之前,系统删除 UPDATE.COM 建立的局部符号。然而,保留全局符号。 在以下例子中,SUBMIT 命令建立一个先执行 UPDATE.COM 然后执行 SORT.COM 的批量作业:
以下例子把同样的两个参数传递给 UPDATE.COM 和 SORT.COM:
16.5.2 传递数据给批量作业批量作业的默认输入流 (SYS$INPUT) 是正在执行的命令过程。因为分离进程正在执行批量作业,因此不能把 SYS$INPUT 重新定义到终端 (而当您交互执行命令过程时则可以。)。要把输入传递给批量作业,使用以下技术之一:
注意,不能在单个作业中为个别命令过程指定不同参数。如果需要传递不同参数,那么使用单独的 SUBMIT 命令。 在以下例子中,数据行被传递到映象 AVERAGE.EXE:
在以下例子中,SYS$INPUT 被临时定义为一个文件:
在以下例子中,把文件 EMPLOYEES.DAT 中的参数传递给命令过程 CHECKS.DAT:
16.5.3 控制批量作业输出按照默认,日志文件与在批量作业中的第一个命令过程同名,并且文件类型为 .LOG。系统每分钟一次把批量作业的输出写入日志文件。要指定不同的时间间隔,把 SET OUTPUT_RATE 命令包括在命令过程中。 如果在系统写入日志文件的同时尝试使用 EDT 编辑程序读取它,那么会接收到一条消息,指出这个文件已被另一个用户加锁。等待几秒,然后再试。然而,EVE 编辑程序允许您阅读批量作业的日志文件。指定 EDIT/TPU/READ_ONLY 和日志文件名,可以使用 EVE 命令来回移动日志文件,并且确保不保存对文件的任何更改。如果省略 /READ_ONLY 限定词,并且以任何方法修改了日志文件,那么批量作业终止。 因为批量作业是一个用您的用户名注册的进程,并且执行您的注册命令过程,因此批量作业的输出包括注册命令过程的内容。其输出也包括写入批量作业日志文件的任何东西 (命令过程输出 、出错消息,等等) 以及完整的注销消息。要阻止把您的注册命令过程写入批量日志文件,可把以下命令添加到注册命令过程的开始:
按照默认,日志文件名是您提交作业的名称。同样按照默认,这个日志文件也有文件类型 .LOG,并且假定您的注册默认指定的设备和目录。要在提交作业时指定不同的日志文件名,对 SUBMIT 命令使用 /LOG_NAME 限定词。 批量作业日志文件包括 SYS$OUTPUT 和 SYS$ERROR 的所有输出。按照默认,它也包括在命令过程中执行的所有命令行。要阻止打印命令行,在命令过程中使用 SET NOVERIFY 命令或 F$VERIFY 词法函数。作业完成时,系统把作业终止信息 (使用长格式的系统注销消息) 写入日志文件。 如果 SET VERIFY 命令有效,那么使用 SET PREFIX 命令为每个命令行加上时间戳,您也可以知道每个命令执行的精确 时间。 批量作业不能成功完成时,可以检查日志文件确定命令过程失败的位置和引起失败的出错状态。 要保存日志文件,使用 /KEEP 或 /NOPRINTER 限定词。/KEEP 限定词在打印日志文件之后保存它。/NOPRINTER 限定词保存记录,但不打印。如果没有指定这些限定词,那么发生默认动作;日志文件被排队到默认打印队列 SYS$PRINT,并且在打印之后删除。/KEEP 和 /NOPRINTER 限定词把日志文件保存在默认注册目录中。日志文件与在批量作业中的第一个命令过程同名,并且文件类型是 .LOG。要指定其他文件名或目录名,使用 /LOG_FILE 限定词。要重新命名和保存日志文件,必须使用 /LOG_FILE 和任意一个 /KEEP 或 /NOPRINTER。 在以下例子中,把日志文件保存到文件 DISK2:[JONES.RESULTS]UPDATE.LOG:
可以使用 TYPE 命令读取日志文件来确定已完成多少批量作业 。然而,如果在系统写入日志文件的同时尝试显示它,那么会接收到一条消息,指出这个文件已被另一个用户加锁。如果发生这种情况,等待几秒,然后再试。 通常,编译、链接和执行程序的批量作业命令过程建立附加的打印输出,例如编译程序列表或链接程序映象。要产生这些文件的打印副本,批量作业命令过程可以包含 PRINT 命令 用于打印。 如果想要批量作业记录包含命令过程的所有输出,包括编译程序的打印列表或链接程序的输出文件,那么可以做以下任意一个:
在以下例子中展示的命令过程完成处理时,有三个单独的输出列表: 批量作业记录、编译程序列表和链接程序映象:
以下例子展示如何使用限定词把输出指引到 SYS$OUTPUT:
这些命令在批量作业中执行时,来自编译程序和链接程序的输出文件直接写入日志文件。 在作业提交到队列之后但在作业开始执行之前,可以使用带适当限定词的 SET ENTRY 或 SET QUEUE/ENTRY 命令更改与作业相关的特征。 以下例子展示当批量作业暂挂在批队列中时可以用来更改批量作业名的两个方法:
下表包含一些可以用 SET ENTRY 或 SET QUEUE/ENTRY 命令进行的更改。有关这些限定词的完整列表,请参阅 OpenVMS DCL Dictionary。注意,SUBMIT 命令允许的多数限定词也可以用于 SET ENTRY 和 SET QUEUE/ENTRY 命令。 您可以进行以下更改:
16.5.5 SUBMIT 命令限定词以下是可以用 SUBMIT 命令指定控制批量作业特征的限定词。注意,您也可以指定执行特征,例如工作区默认、工作区范围、工作区大小、作业调度优先级和 CPU 时间限制。 /AFTER
|