2899 lines
94 KiB
HTML
2899 lines
94 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>Batch Environment Services</title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
|
|
</script>
|
|
|
|
<basefont size="3"> <!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h2><a name="tag_03"></a>Batch Environment Services</h2>
|
|
|
|
<div class="box">
|
|
<p><sup>[<a href="javascript:open_code('BE')">BE</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
This chapter describes the services and utilities that shall be implemented on all systems that claim conformance to the Batch
|
|
Environment option. This functionality is dependent on support of this option (and the rest of this section is not further marked
|
|
for this option). <img src="../images/opt-end.gif" alt="[Option End]" border="0"></p>
|
|
</div>
|
|
|
|
<h3><a name="tag_03_01"></a>General Concepts</h3>
|
|
|
|
<h4><a name="tag_03_01_01"></a>Batch Client-Server Interaction</h4>
|
|
|
|
<p>Batch jobs are created and managed by batch servers. A batch client interacts with a batch server to access batch services on
|
|
behalf of the user. In order to use batch services, a user must have access to a batch client.</p>
|
|
|
|
<p>A batch server is a computational entity, such as a daemon process, that provides batch services. Batch servers route, queue,
|
|
modify, and execute batch jobs on behalf of batch clients.</p>
|
|
|
|
<p>The batch utilities described in this volume of IEEE Std 1003.1-2001 (and listed in <a href="#tagtcjh_6">Batch
|
|
Utilities</a> ) are clients of batch services; they allow users to perform actions on the job such as creating, modifying, and
|
|
deleting batch jobs from a shell command line. Although these batch utilities may be said to accomplish certain services, they
|
|
actually obtain services on behalf of a user by means of requests to batch servers.<br>
|
|
</p>
|
|
|
|
<center><b><a name="tagtcjh_6"></a> Table: Batch Utilities</b></center>
|
|
|
|
<center>
|
|
<table cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><br>
|
|
<a href="../utilities/qalter.html"><i>qalter</i></a><br>
|
|
<a href="../utilities/qdel.html"><i>qdel</i></a><br>
|
|
<a href="../utilities/qhold.html"><i>qhold</i></a><br>
|
|
</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><br>
|
|
<a href="../utilities/qmove.html"><i>qmove</i></a><br>
|
|
<a href="../utilities/qmsg.html"><i>qmsg</i></a><br>
|
|
<a href="../utilities/qrerun.html"><i>qrerun</i></a><br>
|
|
</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><br>
|
|
<a href="../utilities/qrls.html"><i>qrls</i></a><br>
|
|
<a href="../utilities/qselect.html"><i>qselect</i></a><br>
|
|
<a href="../utilities/qsig.html"><i>qsig</i></a><br>
|
|
</p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent"><br>
|
|
<a href="../utilities/qstat.html"><i>qstat</i></a><br>
|
|
<a href="../utilities/qsub.html"><i>qsub</i></a><br>
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<p>Client-server interaction takes place by means of the batch requests defined in this chapter. Because direct access to batch
|
|
jobs and queues is limited to batch servers, clients and servers of different implementations can interoperate, since dependencies
|
|
on private structures for batch jobs and queues are limited to batch servers. Also, batch servers may be clients of other batch
|
|
servers.</p>
|
|
|
|
<h4><a name="tag_03_01_02"></a>Batch Queues</h4>
|
|
|
|
<p>Two types of batch queue are described: routing queues and execution queues. When a batch job is placed in a routing queue, it
|
|
is a candidate for routing. A batch job is removed from routing queues under the following conditions:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The batch job has been routed to another queue.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch job has been deleted from the batch queue.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch job has been aborted.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>When a batch job is placed in an execution queue, it is a candidate for execution.</p>
|
|
|
|
<p>A batch job is removed from an execution queue under the following conditions:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The batch job has been executed and exited.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch job has been aborted.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch job has been deleted from the batch queue.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch job has been moved to another queue.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>Access to a batch queue is limited to the batch server that manages the batch queue. Clients never access a batch queue or a
|
|
batch job directly, either to read or write information; all client access to batch queues or jobs takes place through batch
|
|
servers.</p>
|
|
|
|
<h4><a name="tag_03_01_03"></a>Batch Job Creation</h4>
|
|
|
|
<p>When a batch server creates a batch job on behalf of a client, it shall assign a batch job identifier to the job. A batch job
|
|
identifier consists of both a sequence number that is unique among the sequence numbers issued by that server and the name of the
|
|
server. Since the batch server name is unique within a name space, the job identifier is likewise unique within the name space.</p>
|
|
|
|
<p>The batch server that creates a batch job shall return the batch server-assigned job identifier to the client that requested the
|
|
job creation. If the batch server routes or moves the job to another server, it sends the job identifier with the job. Once
|
|
assigned, the job identifier of a batch job shall never change.</p>
|
|
|
|
<h4><a name="tag_03_01_04"></a>Batch Job Tracking</h4>
|
|
|
|
<p>Since a batch job may be moved after creation, the batch server name component of the job identifier need not indicate the
|
|
location of the job. An implementation may provide a batch job tracking mechanism, in which case the user generally does not need
|
|
to know the location of the job. However, an implementation need not provide a batch job tracking mechanism, in which case the user
|
|
must find routed jobs by probing the possible destinations.</p>
|
|
|
|
<h4><a name="tag_03_01_05"></a>Batch Job Routing</h4>
|
|
|
|
<p>To route a batch job, a batch server either moves the job to some other queue that is managed by the batch server, or requests
|
|
that some other batch server accept the job.</p>
|
|
|
|
<p>Each routing queue has one or more queues to which it can route batch jobs. The batch server administrator creates routing
|
|
queues.</p>
|
|
|
|
<p>A batch server may route a batch job from a routing queue to another routing queue. Batch servers shall prevent or otherwise
|
|
handle cases of circular routing paths. As a deferred service, a batch server routes jobs from the routing queues that it manages.
|
|
The algorithm by which a batch server selects a batch queue to which to route a batch job is implementation-defined.</p>
|
|
|
|
<p>A batch job need not be eligible for routing to all the batch queues fed by the routing queue from which it is routed. A batch
|
|
server that has been asked to accept the job may reject the request if the job requires resources that are unavailable to that
|
|
batch server, or if the client is not authorized to access the batch server.</p>
|
|
|
|
<p>Batch servers may route high-priority jobs before low-priority jobs, but, on other than overloaded systems, the effect may be
|
|
imperceptible to the user. If all the batch servers fed by a routing queue reject requests to accept the job for reasons that are
|
|
permanent, the batch server that manages the job shall abort the job. If all or some rejections are temporary, the batch server
|
|
should try to route the job again at some later point.</p>
|
|
|
|
<p>The reasons for rejecting a batch job are implementation-defined. The reasons for which the routing should be retried later and
|
|
the reasons for which the job should be aborted are also implementation-defined.</p>
|
|
|
|
<h4><a name="tag_03_01_06"></a>Batch Job Execution</h4>
|
|
|
|
<p>To execute a batch job is to create a session leader (a process) that runs the shell program indicated by the <i>Shell_Path</i>
|
|
attribute of the job. The script shall be passed to the program as its standard input. An implementation may pass the script to the
|
|
program by other implementation-defined means. At the time a batch job begins execution, it is defined to enter the RUNNING state.
|
|
The primary program that is executed by a batch job is typically, though not necessarily, a shell program.</p>
|
|
|
|
<p>A batch server shall execute eligible jobs as a deferred service-no client request is necessary once the batch job is created
|
|
and eligible. However, the attributes of a batch job, such as the job hold type, may render the job ineligible. A batch server
|
|
shall scan the execution queues that it manages for jobs that are eligible for execution. The algorithm by which the batch server
|
|
selects eligible jobs for execution is implementation-defined.</p>
|
|
|
|
<p>As part of creating the process for the batch job, the batch server shall open the standard output and standard error streams of
|
|
the session.</p>
|
|
|
|
<p>The attributes of a batch job may indicate that the batch server executing the job shall send mail to a list of users at the
|
|
time it begins execution of the job.</p>
|
|
|
|
<h4><a name="tag_03_01_07"></a>Batch Job Exit</h4>
|
|
|
|
<p>When the session leader of an executing job terminates, the job exits. As part of exiting a batch job, the batch server that
|
|
manages the job shall remove the job from the batch queue in which it resides. The server shall transfer output files of the job to
|
|
a location described by the attributes of the job.</p>
|
|
|
|
<p>The attributes of a batch job may indicate that the batch server managing the job shall send mail to a list of users at the time
|
|
the job exits.</p>
|
|
|
|
<h4><a name="tag_03_01_08"></a>Batch Job Abort</h4>
|
|
|
|
<p>A batch server shall abort jobs for which a required deferred service cannot be performed. The attributes of a batch job may
|
|
indicate that the batch server that aborts the job shall send mail to a list of users at the time it aborts the job.</p>
|
|
|
|
<h4><a name="tag_03_01_09"></a>Batch Authorization</h4>
|
|
|
|
<p>Clients, such as the batch environment utilities (marked BE), access batch services by means of requests to one or more batch
|
|
servers. To acquire the services of any given batch server, the user identifier under which the client runs must be authorized to
|
|
use that batch server.</p>
|
|
|
|
<p>The user with an associated user name that creates a batch job shall own the job and can perform actions such as read, modify,
|
|
delete, and move.</p>
|
|
|
|
<p>A user identifier of the same value at a different host need not be the same user. For example, user name <i>smith</i> at host
|
|
<b>alpha</b> may or may not represent the same person as user name <i>smith</i> at host <b>beta</b>. Likewise, the same person may
|
|
have access to different user names on different hosts.</p>
|
|
|
|
<p>An implementation may optionally provide an authorization mechanism that permits one user name to access jobs under another user
|
|
name.</p>
|
|
|
|
<p>A process on a client host may be authorized to run processes under multiple user names at a batch server host. Where
|
|
appropriate, the utilities defined in this volume of IEEE Std 1003.1-2001 provide a means for a user to choose from among
|
|
such user names when creating or modifying a batch job.</p>
|
|
|
|
<h4><a name="tag_03_01_10"></a>Batch Administration</h4>
|
|
|
|
<p>The processing of a batch job by a batch server is affected by the attributes of the job. The processing of a batch job may also
|
|
be affected by the attributes of the batch queue in which the job resides and by the status of the batch server that manages the
|
|
job. See also the Base Definitions volume of IEEE Std 1003.1-2001, <a href="../basedefs/xbd_chap03.html">Chapter 3,
|
|
Definitions</a> for batch definitions.</p>
|
|
|
|
<h4><a name="tag_03_01_11"></a>Batch Notification</h4>
|
|
|
|
<p>Whereas batch servers are persistent entities, clients are often transient. For example, the <a href=
|
|
"../utilities/qsub.html"><i>qsub</i></a> utility creates a batch job and exits. For this reason, batch servers notify users of
|
|
batch job events by sending mail to the user that owns the job, or to other designated users.</p>
|
|
|
|
<h3><a name="tag_03_02"></a>Batch Services</h3>
|
|
|
|
<p>The presence of Batch Environment option services is indicated by the configuration variable POSIX2_PBS. A conforming batch
|
|
server provides services as defined in this section.</p>
|
|
|
|
<p>A batch server shall provide batch services in two ways:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>The batch server provides a service at the request of a client.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch server provides a deferred service as a result of a change in conditions monitored by the batch server.</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<p>If a batch server cannot complete a request, it shall reject the request. If a batch server cannot complete a deferred service
|
|
for a batch job, the batch server shall abort the batch job. <a href="#tagtcjh_7">Environment Variable Summary</a> is a summary of
|
|
environment variables that shall be supported by an implementation of the batch server and utilities.<br>
|
|
</p>
|
|
|
|
<center><b><a name="tagtcjh_7"></a> Table: Environment Variable Summary</b></center>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Variable</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Description</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_DPREFIX</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the directive prefix (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_ENVIRONMENT</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Batch Job is batch or interactive (see <a href="#tag_03_02_02_01">Batch Job Execution</a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_JOBID</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">The <i>job_identifier</i> attribute of job (see <a href="#tag_03_02_03_08">Queue Batch Job Request</a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_JOBNAME</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">The <i>job_name</i> attribute of job (see <a href="#tag_03_02_03_08">Queue Batch Job Request</a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_HOME</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>HOME</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_HOST</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the host name of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_LANG</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>LANG</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_LOGNAME</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>LOGNAME</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_MAIL</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>MAIL</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_PATH</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>PATH</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_QUEUE</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the submit queue of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_SHELL</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>SHELL</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_TZ</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the <i>TZ</i> of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_O_WORKDIR</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the working directory of the batch client (see <a href="qsub.html"><i>qsub</i></a> )</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>PBS_QUEUE</i></p>
|
|
</td>
|
|
<td align="left">
|
|
<p class="tent">Defines the initial execution queue (see <a href="#tag_03_02_02_01">Batch Job Execution</a> )</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<h4><a name="tag_03_02_01"></a>Batch Job States</h4>
|
|
|
|
<p>A batch job shall always be in one of the following states: QUEUED, RUNNING, HELD, WAITING, EXITING, or TRANSITING. The state of
|
|
a batch job determines the types of requests that the batch server that manages the batch job can accept for the batch job. A batch
|
|
server shall change the state of a batch job either in response to service requests from clients or as a result of deferred
|
|
services, such as job execution or job routing.</p>
|
|
|
|
<p>A batch job that is in the QUEUED state resides in a queue but is still pending either execution or routing, depending on the
|
|
queue type.</p>
|
|
|
|
<p>A batch server that queues a batch job in a routing queue shall put the batch job in the QUEUED state. A batch server that puts
|
|
a batch job in an execution queue, but has not yet executed the batch job, shall put the batch job in the QUEUED state. A batch job
|
|
that resides in an execution queue and is executing is defined to be in the RUNNING state. While a batch job is in the RUNNING
|
|
state, a session leader is associated with the batch job.</p>
|
|
|
|
<p>A batch job that resides in an execution queue, but is ineligible to run because of a hold attribute, is defined to be in the
|
|
HELD state.</p>
|
|
|
|
<p>A batch job that is not held, but must wait until a future date and time before executing, is defined to be in the WAITING
|
|
state.</p>
|
|
|
|
<p>When the session leader associated with a running job exits, the batch job shall be placed in the EXITING state.</p>
|
|
|
|
<p>A batch job for which the session leader has terminated is defined to be in the EXITING state, and the batch server that manages
|
|
such a batch job cannot accept job modification requests that affect the batch job. While a batch job is in the EXITING state, the
|
|
batch server that manages the batch job is staging output files and notifying clients of job completion. Once a batch job has
|
|
exited, it no longer exists as an object managed by a batch server.</p>
|
|
|
|
<p>A batch job that is being moved from a routing queue to another queue is defined to be in the TRANSITING state.</p>
|
|
|
|
<p>When a batch job in a routing queue has been selected to be moved to a new destination, then the batch job shall be in either
|
|
the QUEUED state or the TRANSITING state, depending on the batch server implementation.</p>
|
|
|
|
<p>Batch jobs with either an <i>Execution_Time</i> attribute value set in the future or a <i>Hold_Types</i> attribute of value not
|
|
equal to NO_HOLD, or both, may be routed or held in the routing queue. The treatment of jobs with the <i>Execution_Time</i> or
|
|
<i>Hold_Types</i> attributes in a routing queue is implementation-defined.</p>
|
|
|
|
<p>When a batch job in a routing queue has not been selected to be moved to a new destination and the batch job has a
|
|
<i>Hold_Types</i> attribute value of other than NO_HOLD, then the job should be in the HELD state. <basefont size="2"></p>
|
|
|
|
<dl>
|
|
<dt><b>Note:</b></dt>
|
|
|
|
<dd>The effect of a hold upon a batch job in a routing queue is implementation-defined. The implementation should use the state
|
|
that matches whether the batch job can route with a hold or not.</dd>
|
|
</dl>
|
|
|
|
<basefont size="3">
|
|
|
|
<p>When a batch job in a routing queue has not been selected to be moved to a new destination and the batch job has:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>A <i>Hold_Types</i> attribute value of NO_HOLD</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>An <i>Execution_Time</i> attribute in the past</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>then the batch job shall be in the QUEUED state.</p>
|
|
|
|
<p>When a batch job in a routing queue has not been selected to be moved to a new destination and the batch job has:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>A <i>Hold_Types</i> attribute value of NO_HOLD</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>An <i>Execution_Time</i> attribute in the future</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>then the batch job may be in the WAITING state. <basefont size="2"></p>
|
|
|
|
<dl>
|
|
<dt><b>Note:</b></dt>
|
|
|
|
<dd>The effect of a future execution time upon a batch job in a routing queue is implementation-defined. The implementation should
|
|
use the state that matches whether the batch job can route with a hold or not.</dd>
|
|
</dl>
|
|
|
|
<basefont size="3">
|
|
|
|
<p><a href="#tagtcjh_8">Next State Table</a> describes the next state of a batch job, given the current state of the batch job and
|
|
the type of request. <a href="#tagtcjh_9">Results/Output Table</a> describes the response of a batch server to a request, given the
|
|
current state of the batch job and the type of request.</p>
|
|
|
|
<h4><a name="tag_03_02_02"></a>Deferred Batch Services</h4>
|
|
|
|
<p>This section describes the deferred services performed by batch servers: job execution, job routing, job exit, job abort, and
|
|
the rerunning of jobs after a restart.</p>
|
|
|
|
<h5><a name="tag_03_02_02_01"></a>Batch Job Execution</h5>
|
|
|
|
<p>To execute a batch job is to create a session leader (a process) that runs the shell program indicated by the
|
|
<i>Shell_Path_List</i> attribute of the batch job. The script is passed to the program as its standard input. An implementation may
|
|
pass the script to the program by other implementation-defined means. At the time a batch job begins execution, it is defined to
|
|
enter the RUNNING state.<br>
|
|
</p>
|
|
|
|
<center><b><a name="tagtcjh_8"></a> Table: Next State Table</b></center>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b> </b></p>
|
|
</th>
|
|
<th colspan="7" align="center">
|
|
<p class="tent"><b>Current State</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b> </b></p>
|
|
</th>
|
|
<th colspan="7" align="center">
|
|
<p class="tent"><b>_</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Request Type</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>X</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Q</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>R</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>H</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>W</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>E</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>T</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Queue Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Modify Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Delete Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Message Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Rerun Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Signal Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Queue Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Select Batch Jobs Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Move Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Hold Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R/H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Release Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q/W/H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Shutdown Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">X</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Locate Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Q</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">R</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">H</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">W</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">E</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">T</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<h5><a name="tag_03_02_02_02"></a>Legend</h5>
|
|
|
|
<dl compact>
|
|
<dt>X</dt>
|
|
|
|
<dd>Nonexistent</dd>
|
|
|
|
<dt>Q</dt>
|
|
|
|
<dd>QUEUED</dd>
|
|
|
|
<dt>R</dt>
|
|
|
|
<dd>RUNNING</dd>
|
|
|
|
<dt>H</dt>
|
|
|
|
<dd>HELD</dd>
|
|
|
|
<dt>W</dt>
|
|
|
|
<dd>WAITING</dd>
|
|
|
|
<dt>E</dt>
|
|
|
|
<dd>EXITING</dd>
|
|
|
|
<dt>T</dt>
|
|
|
|
<dd>TRANSITING</dd>
|
|
|
|
<dt>e</dt>
|
|
|
|
<dd>Error</dd>
|
|
</dl>
|
|
|
|
<p>A batch server that has an execution queue containing jobs is said to own the queue and manage the batch jobs in that queue. A
|
|
batch server that has been started shall execute the batch jobs in the execution queues owned by the batch server. The batch server
|
|
shall schedule for execution those jobs in the execution queues that are in the QUEUED state. The algorithm for scheduling jobs is
|
|
implementation-defined.</p>
|
|
|
|
<p>A batch server that executes a batch job shall create, in the environment of the session leader of the batch job, an environment
|
|
variable named <i>PBS_ENVIRONMENT ,</i> the value of which is the string PBS_BATCH encoded in the portable character set.</p>
|
|
|
|
<p>A batch server that executes a batch job shall create, in the environment of the session leader of the batch job, an environment
|
|
variable named <i>PBS_QUEUE ,</i> the value of which is the name of the execution queue of the batch job encoded in the portable
|
|
character set.</p>
|
|
|
|
<p>To rerun a batch job is to requeue a batch job that is currently executing and then kill the session leader of the executing job
|
|
by sending a SIGKILL prior to completion; see <a href="#tag_03_02_03_11">Rerun Batch Job Request</a> . A batch server that reruns a
|
|
batch job shall append the standard output and standard error files of the batch job to the corresponding files of the previous
|
|
execution, if they exist, with appropriate annotation. If either file does not exist, that file shall be created as in normal
|
|
execution.<br>
|
|
</p>
|
|
|
|
<center><b><a name="tagtcjh_9"></a> Table: Results/Output Table</b></center>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b> </b></p>
|
|
</th>
|
|
<th colspan="7" align="center">
|
|
<p class="tent"><b>Current State</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b> </b></p>
|
|
</th>
|
|
<th colspan="7" align="center">
|
|
<p class="tent"><b>_</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Request Type</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>X</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Q</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>R</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>H</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>W</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>E</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>T</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Queue Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Modify Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Delete Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Message Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Rerun Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Signal Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Queue Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Select Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Move Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Hold Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Release Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Shutdown Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Locate Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">e</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">O</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<h5><a name="tag_03_02_02_03"></a>Legend</h5>
|
|
|
|
<dl compact>
|
|
<dt>O</dt>
|
|
|
|
<dd>OK</dd>
|
|
|
|
<dt>e</dt>
|
|
|
|
<dd>Error message</dd>
|
|
</dl>
|
|
|
|
<p>The execution of a batch job by a batch server shall be controlled by job, queue, and server attributes, as defined in this
|
|
section.</p>
|
|
|
|
<h5><a name="tag_03_02_02_04"></a>Account_Name Attribute</h5>
|
|
|
|
<p>Batch accounting is an optional feature of batch servers. If a batch server implements accounting, the statements in this
|
|
section apply and the configuration variable POSIX2_PBS_ACCOUNTING shall be set to 1.</p>
|
|
|
|
<p>A batch server that executes a batch job shall charge the account named in the <i>Account_Name</i> attribute of the batch job
|
|
for resources consumed by the batch job.</p>
|
|
|
|
<p>If the <i>Account_Name</i> attribute of the batch job is absent from the batch job attribute list or is altered while the batch
|
|
job is in execution, the batch server action is implementation-defined.</p>
|
|
|
|
<h5><a name="tag_03_02_02_05"></a>Checkpoint Attribute</h5>
|
|
|
|
<p>Batch checkpointing is an optional feature of batch servers. If a batch server implements checkpointing, the statements in this
|
|
section apply and the configuration variable POSIX2_PBS_CHECKPOINT shall be set to 1.</p>
|
|
|
|
<p>There are two attributes associated with the checkpointing feature: <i>Checkpoint</i> and <i>Minimum_Cpu_Interval</i>.
|
|
<i>Checkpoint</i> is a batch job attribute, while <i>Minimum_Cpu_Interval</i> is a queue attribute. An implementation that does not
|
|
support checkpointing shall support the <i>Checkpoint</i> job attribute to the extent that the batch server shall maintain and pass
|
|
this attribute to other servers.</p>
|
|
|
|
<p>The behavior of a batch server that executes a batch job for which the value of the <i>Checkpoint</i> attribute is
|
|
CHECKPOINT_UNSPECIFIED is implementation-defined. A batch server that executes a batch job for which the value of the
|
|
<i>Checkpoint</i> attribute is NO_CHECKPOINT shall not checkpoint the batch job.</p>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Checkpoint</i> attribute is CHECKPOINT_AT_SHUTDOWN shall
|
|
checkpoint the batch job only when the batch server accepts a request to shut down during the time when the batch job is in the
|
|
RUNNING state.</p>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Checkpoint</i> attribute is
|
|
CHECKPOINT_AT_MIN_CPU_INTERVAL shall checkpoint the batch job at the interval specified by the <i>Minimum_Cpu_Interval</i>
|
|
attribute of the queue for which the batch job has been selected. The <i>Minimum_Cpu_Interval</i> attribute shall be specified in
|
|
units of CPU minutes.</p>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Checkpoint</i> attribute is an unsigned integer shall
|
|
checkpoint the batch job at an interval that is the value of either the <i>Checkpoint</i> attribute, or the
|
|
<i>Minimum_Cpu_Interval</i> attribute of the queue for which the batch job has been selected, whichever is greater. Both intervals
|
|
shall be in units of CPU minutes. When the <i>Minimum_Cpu_Interval</i> attribute is greater than the <i>Checkpoint</i> attribute,
|
|
the batch job shall write a warning message to the standard error stream of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_06"></a>Error_Path Attribute</h5>
|
|
|
|
<p>The <i>Error_Path</i> attribute of a running job cannot be changed by a <i>Modify Batch Job Request</i>. When the
|
|
<i>Join_Path</i> attribute of the batch job is set to the value FALSE and the <i>Keep_Files</i> attribute of the batch job does not
|
|
contain the value KEEP_STD_ERROR, a batch server that executes a batch job shall perform one of the following actions:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Set the standard error stream of the session leader of the batch job to the path described by the value of the <i>Error_Path</i>
|
|
attribute of the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Buffer the standard error of the session leader of the batch job until completion of the batch job, and when the batch job exits
|
|
return the contents to the destination described by the value of the <i>Error_Path</i> attribute of the batch job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>Applications shall not rely on having access to the standard error of a batch job prior to the completion of the batch job.</p>
|
|
|
|
<p>When the <i>Error_Path</i> attribute does not specify a host name, then the batch server shall retain the standard error of the
|
|
batch job on the host of execution.</p>
|
|
|
|
<p>When the <i>Error_Path</i> attribute does specify a host name and the <i>Keep_Files</i> attribute does not contain the value
|
|
KEEP_STD_ERROR, then the final destination of the standard error of the batch job shall be on the host whose host name is
|
|
specified.</p>
|
|
|
|
<p>If the path indicated by the value of the <i>Error_Path</i> attribute of the batch job is a relative path, the batch server
|
|
shall expand the path relative to the home directory of the user on the host to which the file is being returned.</p>
|
|
|
|
<p>When the batch server buffers the standard error of the batch job and the file cannot be opened for write upon completion of the
|
|
batch job, then the server shall place the standard error in an implementation-defined location and notify the user of the location
|
|
via mail. It shall be possible for the user to process this mail using the <a href="../utilities/mailx.html"><i>mailx</i></a>
|
|
utility.</p>
|
|
|
|
<p>If a batch server that does not buffer the standard error cannot open the standard error path of the batch job for write access,
|
|
then the batch server shall abort the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_07"></a>Execution_Time Attribute</h5>
|
|
|
|
<p>A batch server shall not execute a batch job before the time represented by the value of the <i>Execution_Time</i> attribute of
|
|
the batch job. The <i>Execution_Time</i> attribute is defined in seconds since the Epoch.</p>
|
|
|
|
<h5><a name="tag_03_02_02_08"></a>Hold_Types Attribute</h5>
|
|
|
|
<p>A batch server shall support the following hold types:</p>
|
|
|
|
<dl compact>
|
|
<dt><tt>s</tt></dt>
|
|
|
|
<dd>Can be set or released by a user with at least a privilege level of batch administrator (SYSTEM).</dd>
|
|
|
|
<dt><tt>o</tt></dt>
|
|
|
|
<dd>Can be set or released by a user with at least a privilege level of batch operator (OPERATOR).</dd>
|
|
|
|
<dt><tt>u</tt></dt>
|
|
|
|
<dd>Can be set or released by the user with at least a privilege level of user, where the user is defined in the <i>Job_Owner</i>
|
|
attribute (USER).</dd>
|
|
|
|
<dt><tt>n</tt></dt>
|
|
|
|
<dd>Indicates that none of the <i>Hold_Types</i> attributes are set (NO_HOLD).</dd>
|
|
</dl>
|
|
|
|
<p>An implementation may define other hold types. Any additional hold types, how they are specified, their internal representation,
|
|
their behavior, and how they affect the behavior of other utilities are implementation-defined.</p>
|
|
|
|
<p>The value of the <i>Hold_Types</i> attribute shall be the union of the valid hold types ( <tt>'s'</tt> , <tt>'o'</tt> ,
|
|
<tt>'u'</tt> , and any implementation-defined hold types), or <tt>'n'</tt> .</p>
|
|
|
|
<p>A batch server shall not execute a batch job if the <i>Hold_Types</i> attribute of the batch job has a value other than NO_HOLD.
|
|
If the <i>Hold_Types</i> attribute of the batch job has a value other than NO_HOLD, the batch job shall be in the HELD state.</p>
|
|
|
|
<h5><a name="tag_03_02_02_09"></a>Job_Owner Attribute</h5>
|
|
|
|
<p>The <i>Job_Owner</i> attribute consists of a pair of user name and host name values of the form:</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<tt>username@hostname
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p>A batch server that accepts a <i>Queue Batch Job Request</i> shall set the <i>Job_Owner</i> attribute to a string that is the
|
|
<i>username</i>@ <i>hostname</i> of the user who submitted the job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_10"></a>Join_Path Attribute</h5>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Join_Path</i> attribute is TRUE shall ignore the value of
|
|
the <i>Error_Path</i> attribute and merge the standard error of the batch job with the standard output of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_11"></a>Keep_Files Attribute</h5>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Keep_Files</i> attribute includes the value
|
|
KEEP_STD_OUTPUT shall retain the standard output of the batch job on the host where execution occurs. The standard output shall be
|
|
retained in the home directory of the user under whose user ID the batch job is executed and the filename shall be the default
|
|
filename for the standard output as defined under the <b>-o</b> option of the <a href="../utilities/qsub.html"><i>qsub</i></a>
|
|
utility. The <i>Output_Path</i> attribute is not modified.</p>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Keep_Files</i> attribute includes the value
|
|
KEEP_STD_ERROR shall retain the standard error of the batch job on the host where execution occurs. The standard error shall be
|
|
retained in the home directory of the user under whose user ID the batch job is executed and the filename shall be the default
|
|
filename for standard error as defined under the <b>-e</b> option of the <a href="../utilities/qsub.html"><i>qsub</i></a> utility.
|
|
The <i>Error_Path</i> attribute is not modified.</p>
|
|
|
|
<p>A batch server that executes a batch job for which the value of the <i>Keep_Files</i> attribute includes values other than
|
|
KEEP_STD_OUTPUT and KEEP_STD_ERROR shall retain these other files on the host where execution occurs. These files (with
|
|
implementation-defined names) shall be retained in the home directory of the user under whose user identifier the batch job is
|
|
executed.</p>
|
|
|
|
<h5><a name="tag_03_02_02_12"></a>Mail_Points and Mail_Users Attributes</h5>
|
|
|
|
<p>A batch server that executes a batch job for which one of the values of the <i>Mail_Points</i> attribute is the value
|
|
MAIL_AT_BEGINNING shall send a mail message to each user account listed in the <i>Mail_Users</i> attribute of the batch job.</p>
|
|
|
|
<p>The mail message shall contain at least the batch job identifier, queue, and server at which the batch job currently resides,
|
|
and the <i>Job_Owner</i> attribute.</p>
|
|
|
|
<h5><a name="tag_03_02_02_13"></a>Output_Path Attribute</h5>
|
|
|
|
<p>The <i>Output_Path</i> attribute of a running job cannot be changed by a <i>Modify Batch Job Request</i>. When the
|
|
<i>Keep_Files</i> attribute of the batch job does not contain the value KEEP_STD_OUTPUT, a batch server that executes a batch job
|
|
shall either:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Set the standard output stream of the session leader of the batch job to the destination described by the value of the
|
|
<i>Output_Path</i> attribute of the batch job.</p>
|
|
|
|
<p>or:</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Buffer the standard output of the session leader of the batch job until completion of the batch job, and when the batch job
|
|
exits return the contents to the destination described by the value of the <i>Output_Path</i> attribute of the batch job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>When the <i>Output_Path</i> attribute does not specify a host name, then the batch server shall retain the standard output of
|
|
the batch job on the host of execution.</p>
|
|
|
|
<p>When the <i>Keep_Files</i> attribute does not contain the value KEEP_STD_OUTPUT and the <i>Output_Path</i> attribute does
|
|
specify a host name, then the final destination of the standard output of the batch job shall be on the host specified.</p>
|
|
|
|
<p>If the path specified in the <i>Output_Path</i> attribute of the batch job is a relative path, the batch server shall expand the
|
|
path relative to the home directory of the user on the host to which the file is being returned.</p>
|
|
|
|
<p>Whether or not the batch server buffers the standard output of the batch job until completion of the batch job is
|
|
implementation-defined. Applications shall not rely on having access to the standard output of a batch job prior to the completion
|
|
of the batch job.</p>
|
|
|
|
<p>When the batch server does buffer the standard output of the batch job and the file cannot be opened for write upon completion
|
|
of the batch job, then the batch server shall place the standard output in an implementation-defined location and notify the user
|
|
of the location via mail. It shall be possible for the user to process this mail using the <a href=
|
|
"../utilities/mailx.html"><i>mailx</i></a> utility.</p>
|
|
|
|
<p>If a batch server that does not buffer the standard output cannot open the standard output path of the batch job for write
|
|
access, then the batch server shall abort the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_14"></a>Priority Attribute</h5>
|
|
|
|
<p>A batch server implementation may choose to preferentially execute a batch job based on the <i>Priority</i> attribute. The
|
|
interpretation of the batch job <i>Priority</i> attribute by a batch server is implementation-defined. If an implementation uses
|
|
the <i>Priority</i> attribute, it shall interpret larger values of the <i>Priority</i> attribute to mean the batch job shall be
|
|
preferentially selected for execution.</p>
|
|
|
|
<h5><a name="tag_03_02_02_15"></a>Rerunable Attribute</h5>
|
|
|
|
<p>A batch job that began execution but did not complete, because the batch server either shut down or terminated abnormally, shall
|
|
be requeued if the <i>Rerunable</i> attribute of the batch job has the value TRUE.</p>
|
|
|
|
<p>If a batch job, which was requeued after beginning execution but prior to completion, has a valid checkpoint file and the batch
|
|
server supports checkpointing, then the batch job shall be restarted from the last valid checkpoint.</p>
|
|
|
|
<p>If the batch job cannot be restarted from a checkpoint, then when a batch job has a <i>Rerunable</i> attribute value of TRUE and
|
|
was requeued after beginning execution but prior to completion, the batch server shall place the batch job into execution at the
|
|
beginning of the job.</p>
|
|
|
|
<p>When a batch job has a <i>Rerunable</i> attribute value other than TRUE and was requeued after beginning execution but prior to
|
|
completion, and the batch job cannot be restarted from a checkpoint, then the batch server shall abort the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_02_16"></a>Resource_List Attribute</h5>
|
|
|
|
<p>A batch server that executes a batch job shall establish the resource limits of the session leader of the batch job according to
|
|
the values of the <i>Resource_List</i> attribute of the batch job. Resource limits shall be enforced by an implementation-defined
|
|
method.</p>
|
|
|
|
<h5><a name="tag_03_02_02_17"></a>Shell_Path_List Attribute</h5>
|
|
|
|
<p>The <i>Shell_Path_List</i> job attribute consists of a list of pairs of pathname and host name values. The host name component
|
|
can be omitted, in which case the pathname serves as the default pathname when a batch server cannot find the name of the host on
|
|
which it is running in the list.</p>
|
|
|
|
<p>A batch server that executes a batch job shall select, from the value of the <i>Shell_Path_List</i> attribute of the batch job,
|
|
a pathname where the shell to execute the batch job shall be found. The batch server shall select the pathname, in order of
|
|
preference, according to the following methods:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Select the pathname that contains the name of the host on which the batch server is running.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Select the pathname for which the host name has been omitted.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Select the pathname for the login shell of the user under which the batch job is to execute.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>If the shell path value selected is an invalid pathname, the batch server shall abort the batch job.</p>
|
|
|
|
<p>If the value of the selected pathname from the <i>Shell_Path_List</i> attribute of the batch job represents a partial path, the
|
|
batch server shall expand the path relative to a path that is implementation-defined.</p>
|
|
|
|
<p>The batch server that executes the batch job shall execute the program that was selected from the <i>Shell_Path_List</i>
|
|
attribute of the batch job. The batch server shall pass the path to the script of the batch job as the first argument to the shell
|
|
program.</p>
|
|
|
|
<h5><a name="tag_03_02_02_18"></a>User_List Attribute</h5>
|
|
|
|
<p>The <i>User_List</i> job attribute consists of a list of pairs of user name and host name values. The host name component can be
|
|
omitted, in which case the user name serves as a default when a batch server cannot find the name of the host on which it is
|
|
running in the list.</p>
|
|
|
|
<p>A batch server that executes a batch job shall select, from the value of the <i>User_List</i> attribute of the batch job, a user
|
|
name under which to create the session leader. The server shall select the user name, in order of preference, according to the
|
|
following methods:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Select the user name of a value that contains the name of the host on which the batch server executes.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Select the user name of a value for which the host name has been omitted.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Select the user name from the <i>Job_Owner</i> attribute of the batch job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h5><a name="tag_03_02_02_19"></a>Variable_List Attribute</h5>
|
|
|
|
<p>A batch server that executes a batch job shall create, in the environment of the session leader of the batch job, each
|
|
environment variable listed in the <i>Variable_List</i> attribute of the batch job, and set the value of each such environment
|
|
variable to that of the corresponding variable in the variable list.</p>
|
|
|
|
<h5><a name="tag_03_02_02_20"></a>Batch Job Routing</h5>
|
|
|
|
<p>To route a batch job is to select a queue from a list and move the batch job to that queue.</p>
|
|
|
|
<p>A batch server that has routing queues, which have been started, shall route the jobs in the routing queues owned by the batch
|
|
server. A batch server may delay the routing of a batch job. The algorithm for selecting a batch job and the queue to which it will
|
|
be routed is implementation-defined.</p>
|
|
|
|
<p>When a routing queue has multiple possible destinations specified, then the precedence of the destinations is
|
|
implementation-defined.</p>
|
|
|
|
<p>A batch server that routes a batch job to a queue at another server shall move the batch job into the target queue with a
|
|
<i>Queue Batch Job Request</i>.</p>
|
|
|
|
<p>If the target server rejects the <i>Queue Batch Job Request</i>, the routing server shall retry routing the batch job or abort
|
|
the batch job. A batch server that retries failed routings shall provide a means for the batch administrator to specify the number
|
|
of retries and the minimum period of time between retries. The means by which an administrator specifies the number of retries and
|
|
the delay between retries is implementation-defined. When the number of retries specified by the batch administrator has been
|
|
exhausted, the batch server shall abort the batch job and perform the functions of <i>Batch Job Exit</i>; see <a href=
|
|
"#tag_03_02_02_21">Batch Job Exit</a> .</p>
|
|
|
|
<h5><a name="tag_03_02_02_21"></a>Batch Job Exit</h5>
|
|
|
|
<p>For each job in the EXITING state, the batch server that exited the batch job shall perform the following deferred services in
|
|
the order specified:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>If buffering standard error, move that file into the location specified by the <i>Error_Path</i> attribute of the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If buffering standard output, move that file into the location specified by the <i>Output_Path</i> attribute of the batch
|
|
job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If the <i>Mail_Points</i> attribute of the batch job includes MAIL_AT_EXIT, send mail to the users listed in the
|
|
<i>Mail_Users</i> attribute of the batch job. The mail message shall contain at least the batch job identifier, queue, and server
|
|
at which the batch job currently resides, and the <i>Job_Owner</i> attribute.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Remove the batch job from the queue.</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<p>If a batch server that buffers the standard error output cannot return the standard error file to the standard error path at the
|
|
time the batch job exits, the batch server shall do one of the following:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Mail the standard error file to the batch job owner.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Save the standard error file and mail the location and name of the file where the standard error is stored to the batch job
|
|
owner.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Save the standard error file and notify the user by other implementation-defined means.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>If a batch server that buffers the standard output cannot return the standard output file to the standard output path at the
|
|
time the batch job exits, the batch server shall do one of the following:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Mail the standard output file to the batch job owner.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Save the standard output file and mail the location and name of the file where the standard output is stored to the batch job
|
|
owner.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Save the standard output file and notify the user by other implementation-defined means.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>At the conclusion of job exit processing, the batch job is no longer managed by a batch server.</p>
|
|
|
|
<h5><a name="tag_03_02_02_22"></a>Batch Server Restart</h5>
|
|
|
|
<p>A batch server that has been either shutdown or terminated abnormally, and has returned to operation, is said to have
|
|
``restarted''.</p>
|
|
|
|
<p>Upon restarting, a batch server shall requeue those jobs managed by the batch server that were in the RUNNING state at the time
|
|
the batch server shut down and for which the <i>Rerunable</i> attribute of the batch job has the value TRUE.</p>
|
|
|
|
<p>Queues are defined to be non-volatile. A batch server shall store the content of queues that it controls in such a way that
|
|
server and system shutdowns do not erase the content of the queues.</p>
|
|
|
|
<h5><a name="tag_03_02_02_23"></a>Batch Job Abort</h5>
|
|
|
|
<p>A batch server that cannot perform a deferred service for a batch job shall abort the batch job.</p>
|
|
|
|
<p>A batch server that aborts a batch job shall perform the following services:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Delete the batch job from the queue in which it resides.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If the <i>Mail_Points</i> attribute of the batch job includes the value MAIL_AT_ABORT, send mail to the users listed in the
|
|
value of the <i>Mail_Users</i> attribute of the job. The mail message shall contain at least the batch job identifier, queue, and
|
|
server at which the batch job currently resides, the <i>Job_Owner</i> attribute, and the reason for the abort.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If the batch job was in the RUNNING state, terminate the session leader of the executing job by sending the session leader a
|
|
SIGKILL, place the batch job in the EXITING state, and perform the actions of <i>Batch Job Exit</i>.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4><a name="tag_03_02_03"></a>Requested Batch Services</h4>
|
|
|
|
<p>This section describes the services provided by batch servers in response to requests from clients. <a href="#tagtcjh_10">Batch
|
|
Services Summary</a> summarizes the current set of batch service requests and for each gives its type (deferred or not) and whether
|
|
it is an optional function.<br>
|
|
</p>
|
|
|
|
<center><b><a name="tagtcjh_10"></a> Table: Batch Services Summary</b></center>
|
|
|
|
<center>
|
|
<table border="1" cellpadding="3" align="center">
|
|
<tr valign="top">
|
|
<th align="center">
|
|
<p class="tent"><b>Batch Service</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Deferred</b></p>
|
|
</th>
|
|
<th align="center">
|
|
<p class="tent"><b>Optional</b></p>
|
|
</th>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Execution</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Routing</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Exit</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Server Restart</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Abort</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Delete Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Hold Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Message Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Job Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Locate Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Modify Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Move Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Queue Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Batch Queue Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Release Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Rerun Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Select Batch Jobs Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Shutdown Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Server Status Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Signal Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr valign="top">
|
|
<td align="left">
|
|
<p class="tent"><i>Track Batch Job Request</i></p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">No</p>
|
|
</td>
|
|
<td align="center">
|
|
<p class="tent">Yes</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
|
|
<p>If a request is rejected because the batch client is not authorized to perform the action, the batch server shall return the
|
|
same status as when the batch job does not exist.</p>
|
|
|
|
<h5><a name="tag_03_02_03_01"></a>Delete Batch Job Request</h5>
|
|
|
|
<p>A batch job is defined to have been deleted when it has been removed from the queue in which it resides and not instantiated in
|
|
another queue. A client requests that the server that manages a batch job delete the batch job. Such a request is called a
|
|
<i>Delete Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Delete Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to delete the designated job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not managed by the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is in a state inconsistent with the delete request.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Delete Batch Job Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server requested to delete a batch job shall delete the batch job if the batch job exists and is not in the EXITING
|
|
state.</p>
|
|
|
|
<p>A batch server that deletes a batch job in the RUNNING state shall send a SIGKILL signal to the session leader of the batch job.
|
|
It is implementation-defined whether additional signals are sent to the session leader of the job prior to sending the SIGKILL
|
|
signal.</p>
|
|
|
|
<p>A batch server that deletes a batch job in the RUNNING state shall place the batch job in the EXITING state after it has killed
|
|
the session leader of the batch job and shall perform the actions of <i>Batch Job Exit</i>.</p>
|
|
|
|
<h5><a name="tag_03_02_03_02"></a>Hold Batch Job Request</h5>
|
|
|
|
<p>A batch client can request that the batch server add one or more holds to a batch job. Such a request is called a <i>Hold Batch
|
|
Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Hold Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The batch server does not support one or more of the requested holds to be added to the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The user of the batch client is not authorized to add one or more of the requested holds to the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch server does not manage the specified job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is in the EXITING state.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Hold Batch Job Request</i> for other implementation-defined reasons. The method used to determine
|
|
whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Hold Batch Job Request</i> for a batch job in the RUNNING state shall place a hold on the batch
|
|
job. The effects, if any, the hold will have on a batch job in the RUNNING state are implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Hold Batch Job Request</i> shall add each type of hold listed in the <i>Hold Batch Job
|
|
Request</i>, that is not already present, to the value of the <i>Hold_Types</i> attribute of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_03"></a>Batch Job Message Request</h5>
|
|
|
|
<p><i>Batch Job Message Request</i> is an optional feature of batch servers. If an implementation supports <i>Batch Job Message
|
|
Request</i>, the statements in this section apply and the configuration variable POSIX2_PBS_MESSAGE shall be set to 1.</p>
|
|
|
|
<p>A batch client can request that a batch server write a message into certain output files of a batch job. Such a request is
|
|
called a <i>Batch Job Message Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Batch Job Message Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The batch server does not support sending messages to jobs.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The user of the batch client is not authorized to post a message to the designated job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job does not exist on the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not in the RUNNING state.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Batch Job Message Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Batch Job Message Request</i> shall write the message sent by the batch client into the files
|
|
indicated by the batch client.</p>
|
|
|
|
<h5><a name="tag_03_02_03_04"></a>Batch Job Status Request</h5>
|
|
|
|
<p>A batch client can request that a batch server respond with the status and attributes of a batch job. Such a request is called a
|
|
<i>Batch Job Status Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Batch Job Status Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to query the status of the designated job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not managed by the batch server.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Batch Job Status Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Batch Job Status Request</i> shall return a <i>Batch Job Status Message</i> to the batch
|
|
client.</p>
|
|
|
|
<p>A batch server may return other information in response to a <i>Batch Job Status Request</i>.</p>
|
|
|
|
<h5><a name="tag_03_02_03_05"></a>Locate Batch Job Request</h5>
|
|
|
|
<p><i>Locate Batch Job Request</i> is an optional feature of batch servers. If an implementation supports <i>Locate Batch Job
|
|
Request</i>, the statements in this section apply and the configuration variable POSIX2_PBS_LOCATE shall be set to 1.</p>
|
|
|
|
<p>A batch client can ask a batch server to respond with the location of a batch job that was created by the batch server. Such a
|
|
request is called a <i>Locate Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server that accepts a <i>Locate Batch Job Request</i> shall return a <i>Batch Job Location Message</i> to the batch
|
|
client.</p>
|
|
|
|
<p>A batch server may reject a <i>Locate Batch Job Request</i> for a batch job that was not created by that server.</p>
|
|
|
|
<p>A batch server may reject a <i>Locate Batch Job Request</i> for a batch job that is no longer managed by that server; that is,
|
|
for a batch job that is not in a queue owned by that server.</p>
|
|
|
|
<p>A batch server may reject a <i>Locate Batch Job Request</i> for other implementation-defined reasons.</p>
|
|
|
|
<h5><a name="tag_03_02_03_06"></a>Modify Batch Job Request</h5>
|
|
|
|
<p>Batch clients modify (alter) the attributes of a batch job by making a request to the server that manages the batch job. Such a
|
|
request is called a <i>Modify Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Modify Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to make the requested modification to the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not managed by the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The requested modification is inconsistent with the state of the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>An unrecognized resource is requested for a batch job in an execution queue.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Modify Batch Job Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Modify Batch Job Request</i> shall modify all the specified attributes of the batch job. A
|
|
batch server that rejects a <i>Modify Batch Job Request</i> shall modify none of the attributes of the batch job.</p>
|
|
|
|
<p>If the servicing by a batch server of an otherwise valid request would result in no change, then the batch server shall indicate
|
|
successful completion of the request.</p>
|
|
|
|
<h5><a name="tag_03_02_03_07"></a>Move Batch Job Request</h5>
|
|
|
|
<p>A batch client can request that a batch server move a batch job to another destination. Such a request is called a <i>Move Batch
|
|
Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Move Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to remove the designated job from the queue in which the batch job resides.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The user of the batch client is not authorized to move the designated job to the destination.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not managed by the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is in the EXITING state.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The destination is inaccessible.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server can reject a <i>Move Batch Job Request</i> for other implementation-defined reasons. The method used to determine
|
|
whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Move Batch Job Request</i> shall perform the following services:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Queue the designated job at the destination.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Remove the designated job from the queue in which the batch job resides.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>If the destination resides on another batch server, the batch server shall queue the batch job at the destination by sending a
|
|
<i>Queue Batch Job Request</i> to the other server. If the <i>Queue Batch Job Request</i> fails, the batch server shall reject the
|
|
<i>Move Batch Job Request</i>. If the <i>Queue Batch Job Request</i> succeeds, the batch server shall remove the batch job from its
|
|
queue.</p>
|
|
|
|
<p>The batch server shall not modify any attributes of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_08"></a>Queue Batch Job Request</h5>
|
|
|
|
<p>A batch queue is controlled by one and only one batch server. A batch server is said to own the queues that it controls. Batch
|
|
clients make requests of batch servers to have jobs queued. Such a request is called a <i>Queue Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server requested to queue a batch job for which the queue is not specified shall select an implementation-defined queue
|
|
for the batch job. Such a queue is called the ``default queue'' of the batch server. The implementation shall provide the means for
|
|
a batch administrator to specify the default queue. The queue, whether specified or defaulted, is called the ``target queue''.</p>
|
|
|
|
<p>A batch server shall reject a <i>Queue Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The client is not authorized to create a batch job in the target queue.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The request specifies a queue that does not exist on the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The target queue is an execution queue and the batch server cannot satisfy a resource requirement of the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The target queue is an execution queue and an unrecognized resource is requested.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The target queue is an execution queue, the batch server does not support checkpointing, and the value of the <i>Checkpoint</i>
|
|
attribute of the batch job is not NO_CHECKPOINT.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The job requires access to a user identifier that the batch client is not authorized to access.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Queue Batch Job Request</i> for other implementation-defined reasons.</p>
|
|
|
|
<p>A batch server that accepts a <i>Queue Batch Job Request</i> for a batch job for which the PBS_O_QUEUE value is missing from the
|
|
value of the <i>Variable_List</i> attribute of the batch job shall add that variable to the list and set the value to the name of
|
|
the target queue. Once set, no server shall change the value of PBS_O_QUEUE, even if the batch job is moved to another queue.</p>
|
|
|
|
<p>A batch server that accepts a <i>Queue Batch Job Request</i> for a batch job for which the PBS_JOBID value is missing from the
|
|
value of the <i>Variable_List</i> attribute shall add that variable to the list and set the value to the batch job identifier
|
|
assigned by the server in the format:</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<tt>sequence_number.server
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p>A batch server that accepts a <i>Queue Batch Job Request</i> for a batch job for which the PBS_JOBNAME value is missing from the
|
|
value of the <i>Variable_List</i> attribute of the batch job shall add that variable to the list and set the value to the
|
|
<i>Job_Name</i> attribute of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_09"></a>Batch Queue Status Request</h5>
|
|
|
|
<p>A batch client can request that a batch server respond with the status and attributes of a queue. Such a request is called a
|
|
<i>Batch Queue Status Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Batch Queue Status Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to query the status of the designated queue.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated queue does not exist on the batch server.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Batch Queue Status Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Batch Queue Status Request</i> shall return a <i>Batch Queue Status Reply</i> to the batch
|
|
client.</p>
|
|
|
|
<h5><a name="tag_03_02_03_10"></a>Release Batch Job Request</h5>
|
|
|
|
<p>A batch client can request that the server remove one or more holds from a batch job. Such a request is called a <i>Release
|
|
Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Release Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to remove one or more of the requested holds from the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch server does not manage the specified job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Release Batch Job Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Release Batch Job Request</i> shall remove each type of hold listed in the <i>Release Batch Job
|
|
Request</i>, that is present, from the value of the <i>Hold_Types</i> attribute of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_11"></a>Rerun Batch Job Request</h5>
|
|
|
|
<p>To rerun a batch job is to kill the session leader of the batch job and leave the batch job eligible for re-execution. A batch
|
|
client can request that a batch server rerun a batch job. Such a request is called <i>Rerun Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Rerun Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to rerun the designated job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The <i>Rerunable</i> attribute of the designated job has the value FALSE.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The designated job is not in the RUNNING state.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch server does not manage the designated job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Rerun Batch Job Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that rejects a <i>Rerun Batch Job Request</i> shall in no way modify the execution of the batch job.</p>
|
|
|
|
<p>A batch server that accepts a request to rerun a batch job shall perform the following services:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Requeue the batch job in the execution queue in which it was executing.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Send a SIGKILL signal to the process group of the session leader of the batch job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>An implementation may indicate to the batch job owner that the batch job has been rerun. Whether and how the batch job owner is
|
|
notified that a batch job is rerun is implementation-defined.</p>
|
|
|
|
<p>A batch server that reruns a batch job may send other implementation-defined signals to the session leader of the batch job
|
|
prior to sending the SIGKILL signal.</p>
|
|
|
|
<p>A batch server may preferentially select a rerun job for execution. Whether rerun jobs shall be selected for execution before
|
|
other jobs is implementation-defined.</p>
|
|
|
|
<h5><a name="tag_03_02_03_12"></a>Select Batch Jobs Request</h5>
|
|
|
|
<p>A batch client can request from a batch server a list of jobs managed by that server that match a list of selection criteria.
|
|
Such a request is called a <i>Select Batch Jobs Request</i>. All the batch jobs managed by the batch server that receives the
|
|
request are candidates for selection.</p>
|
|
|
|
<p>A batch server that accepts a <i>Select Batch Jobs Request</i> shall return a list of zero or more job identifiers that
|
|
correspond to jobs that meet the selection criteria.</p>
|
|
|
|
<p>If the batch client is not authorized to query the status of a batch job, the batch server shall not select the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_13"></a>Server Shutdown Request</h5>
|
|
|
|
<p>A batch server is defined to have shut down when it does not respond to requests from clients and does not perform deferred
|
|
services for jobs. A batch client can request that a batch server shut down. Such a request is called a <i>Server Shutdown
|
|
Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Server Shutdown Request</i> from a client that is not authorized to shut down the batch server.
|
|
The method used to determine whether the user of a client is authorized to perform the requested action is
|
|
implementation-defined.</p>
|
|
|
|
<p>A batch server may reject a <i>Server Shutdown Request</i> for other implementation-defined reasons. The reasons for which a
|
|
<i>Server Shutdown Request</i> may be rejected are implementation-defined.</p>
|
|
|
|
<p>At server shutdown, a batch server shall do, in order of preference, one of the following:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>If checkpointing is implemented and the batch job is checkpointable, then checkpoint the batch job and requeue it.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If the batch job is rerunnable, then requeue the batch job to be rerun (restarted from the beginning).</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Abort the batch job.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h5><a name="tag_03_02_03_14"></a>Server Status Request</h5>
|
|
|
|
<p>A batch client can request that a batch server respond with the status and attributes of the batch server. Such a request is
|
|
called a <i>Server Status Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Server Status Request</i> if the following statement is true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to query the status of the designated server.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Server Status Request</i> for other implementation-defined reasons. The method used to determine
|
|
whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a <i>Server Status Request</i> shall return a <i>Server Status Reply</i> to the batch client.</p>
|
|
|
|
<h5><a name="tag_03_02_03_15"></a>Signal Batch Job Request</h5>
|
|
|
|
<p>A batch client can request that a batch server signal the session leader of a batch job. Such a request is called a <i>Signal
|
|
Batch Job Request</i>.</p>
|
|
|
|
<p>A batch server shall reject a <i>Signal Batch Job Request</i> if any of the following statements are true:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The user of the batch client is not authorized to signal the batch job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The job is not in the RUNNING state.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The batch server does not manage the designated job.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The requested signal is not supported by the implementation.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>A batch server may reject a <i>Signal Batch Job Request</i> for other implementation-defined reasons. The method used to
|
|
determine whether the user of a client is authorized to perform the requested action is implementation-defined.</p>
|
|
|
|
<p>A batch server that accepts a request to signal a batch job shall send the signal requested by the batch client to the process
|
|
group of the session leader of the batch job.</p>
|
|
|
|
<h5><a name="tag_03_02_03_16"></a>Track Batch Job Request</h5>
|
|
|
|
<p><i>Track Batch Job Request</i> is an optional feature of batch servers. If an implementation supports <i>Track Batch Job
|
|
Request</i>, the statements in this section apply and the configuration variable POSIX2_PBS_TRACK shall be set to 1.</p>
|
|
|
|
<p><i>Track Batch Job Request</i> provides a method for tracking the current location of a batch job. Clients may use the tracking
|
|
information to determine the batch server that should receive a batch server request.</p>
|
|
|
|
<p>If <i>Track Batch Job Request</i> is supported by a batch server, then when the batch server queues a batch job as a result of a
|
|
<i>Queue Batch Job Request</i>, and the batch server is not the batch server that created the batch job, the batch server shall
|
|
send a <i>Track Batch Job Request</i> to the batch server that created the job.</p>
|
|
|
|
<p>If <i>Track Batch Job Request</i> is supported by a batch server, then the <i>Track Batch Job Request</i> may also be sent to
|
|
other servers as a backup to the primary server. The method by which backup servers are specified is implementation-defined.</p>
|
|
|
|
<p>If <i>Track Batch Job Request</i> is supported by a batch server that receives a <i>Track Batch Job Request</i>, then the batch
|
|
server shall record the current location of the batch job as contained in the request.</p>
|
|
|
|
<h3><a name="tag_03_03"></a>Common Behavior for Batch Environment Utilities</h3>
|
|
|
|
<h4><a name="tag_03_03_01"></a>Batch Job Identifier</h4>
|
|
|
|
<p>A utility shall recognize <i>job_identifier</i>s of the format:</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<tt>[sequence_number][.server_name][@server]
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p>where:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>sequence_number</i></dt>
|
|
|
|
<dd>An integer that, when combined with <i>server_name</i>, provides a batch job identifier that is unique within the batch
|
|
system.</dd>
|
|
|
|
<dt><i>server_name</i></dt>
|
|
|
|
<dd>The name of the batch server to which the batch job was originally submitted.</dd>
|
|
|
|
<dt><i>server</i></dt>
|
|
|
|
<dd>The name of the batch server that is currently managing the batch job.</dd>
|
|
</dl>
|
|
|
|
<p>If the application omits the batch <i>server_name</i> portion of a batch job identifier, a utility shall use the name of a
|
|
default batch server.</p>
|
|
|
|
<p>If the application omits the batch <i>server</i> portion of a batch job identifier, a utility shall use:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The batch server indicated by <i>server_name</i>, if present</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The name of the default batch server</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The name of the batch server that is currently managing the batch job</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>If only @ <i>server</i> is specified, then the status of all jobs owned by the user on the requested server is listed.</p>
|
|
|
|
<p>The means by which a utility determines the default batch server is implementation-defined.</p>
|
|
|
|
<p>If the application presents the batch <i>server</i> portion of a batch job identifier to a utility, the utility shall send the
|
|
request to the specified server.</p>
|
|
|
|
<p>A strictly conforming application shall use the syntax described for the job identifier. Whenever a batch job identifier is
|
|
specified whose syntax is not recognized by an implementation, then a message for each error that occurs shall be written to
|
|
standard error and the utility shall exit with an exit status greater than zero.</p>
|
|
|
|
<p>When a batch job identifier is supplied as an argument to a batch utility and the <i>server_name</i> portion of the batch job
|
|
identifier is omitted, then the utility shall use the name of the default batch server.</p>
|
|
|
|
<p>When a batch job identifier is supplied as an argument to a batch utility and the batch <i>server</i> portion of the batch job
|
|
identifier is omitted, then the utility shall use either:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The name of the default batch server</p>
|
|
|
|
<p>or:</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The name of the batch server that is currently managing the batch job</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>When a batch job identifier is supplied as an argument to a batch utility and the batch <i>server</i> portion of the batch job
|
|
identifier is specified, then the utility shall send the required <i>Batch Server Request</i> to the specified server.</p>
|
|
|
|
<h4><a name="tag_03_03_02"></a>Destination</h4>
|
|
|
|
<p>The utility shall recognize a <i>destination</i> of the format:</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<tt>[queue][@server]
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<p>where:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>queue</i></dt>
|
|
|
|
<dd>The name of a valid execution or routing queue at the batch server denoted by @ <i>server</i>, defined as a string of up to 15
|
|
alphanumeric characters in the portable character set (see the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap06.html#tag_06_01">Section 6.1, Portable Character Set</a>) where the first character is alphabetic.</dd>
|
|
|
|
<dt><i>server</i></dt>
|
|
|
|
<dd>The name of a batch server, defined as a string of alphanumeric characters in the portable character set.</dd>
|
|
</dl>
|
|
|
|
<p>If the application omits the batch <i>server</i> portion of a destination, then the utility shall use either:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The name of the default batch server</p>
|
|
|
|
<p>or:</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>The name of the batch server that is currently managing the batch job</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>The means by which a utility determines the default batch server is implementation-defined.</p>
|
|
|
|
<p>If the application omits the <i>queue</i> portion of a destination, then the utility shall use the name of the default queue at
|
|
the batch server chosen. The means by which a batch server determines its default queue is implementation-defined. If a destination
|
|
is specified in the <i>queue</i>@ <i>server</i> form, then the utility shall use the specified queue at the specified server.</p>
|
|
|
|
<p>A strictly conforming application shall use the syntax described for a destination. Whenever a destination is specified whose
|
|
syntax is not recognized by an implementation, then a message shall be written to standard error and the utility shall exit with an
|
|
exit status greater than zero.</p>
|
|
|
|
<h4><a name="tag_03_03_03"></a>Multiple Keyword-Value Pairs</h4>
|
|
|
|
<p>For each option that can have multiple keyword-value pair arguments, the following rules shall apply. Examples of options that
|
|
can have list-oriented option-arguments are <b>-u</b> <i>value</i>@ <i>keyword</i> and <b>-l</b> <i>keyword</i>= <i>value</i>.</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>If a batch utility is presented with a list-oriented option-argument for which a keyword has a corresponding value that begins
|
|
with a single or double quote, then the utility shall stop interpreting the input stream for delimiters until a second single or
|
|
double quote, respectively, is encountered. This feature allows some flexibility for a comma ( <tt>','</tt> ) or equals sign (
|
|
<tt>'='</tt> ) to be part of the value string for a particular keyword; for example:</p>
|
|
|
|
<blockquote>
|
|
<pre>
|
|
<tt>keywd1='val1,val2',keywd2="val3,val4"
|
|
</tt>
|
|
</pre>
|
|
</blockquote>
|
|
|
|
<basefont size="2">
|
|
|
|
<dl>
|
|
<dt><b>Note:</b></dt>
|
|
|
|
<dd>This may require the user to escape the quotes as in the following command:
|
|
|
|
<pre>
|
|
<tt>foo -xkeywd1=\'val1,val2\',keywd2=\"val3,val4\"
|
|
</tt>
|
|
</pre>
|
|
</dd>
|
|
</dl>
|
|
|
|
<basefont size="3"></li>
|
|
|
|
<li>
|
|
<p>If a batch server is presented with a list-oriented attribute that has a keyword that was encountered earlier in the list, then
|
|
the later entry for that keyword shall replace the earlier entry.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If a batch server is presented with a list-oriented attribute that has a keyword without any corresponding value of the form
|
|
<i>keyword</i>= or @ <i>keyword</i> and the same keyword was encountered earlier in the list, then the prior entry for that keyword
|
|
shall be ignored by the batch server.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If a batch utility is expecting a list-oriented option-argument entry of the form <i>keyword</i>= <i>value</i>, but is presented
|
|
with an entry of the form <i>keyword</i> without any corresponding <i>value</i>, then the entry shall be treated as though a
|
|
default value of NULL was assigned (that is, <i>keyword</i>=NULL) for entry parsing purposes. The utility shall include only the
|
|
keyword, not the NULL value, in the associated job attribute.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If a batch utility is expecting a list-oriented option-argument entry of the form <i>value</i>@ <i>keyword</i>, but is presented
|
|
with an entry of the form <i>value</i> without any corresponding <i>keyword</i>, then the entry shall be treated as though a
|
|
keyword of NULL was assigned (that is, <i>value</i>@NULL) for entry parsing purposes. The utility shall include only the value, not
|
|
the NULL keyword, in the associated job attribute.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>A batch server shall accept a list-oriented attribute that has multiple occurrences of the same keyword, interpreting the
|
|
keywords, in order, with the last value encountered taking precedence over prior instances of the same keyword. This rule allows,
|
|
but does not require, a batch utility to preprocess the attribute to remove duplicate keywords.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If a batch utility is presented with multiple list-oriented option-arguments on the command line or in script directives, or
|
|
both, for a single option, then the utility shall concatenate, in order, any command line keyword and value pairs to the end of any
|
|
directive keyword and value pairs separated by a single comma to produce a single string that is an equivalent, valid
|
|
option-argument. The resulting string shall be assigned to the associated attribute of the batch job (after optionally removing
|
|
duplicate entries as described in item 6).</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|