02/12/85 abs Syntax as a command: abs keyword {args} Function: controls the absentee facility. The absentee facility is designed to operate automatically, without any user intervention. Every use of the abs command overrides some parameter or control algorithm that would otherwise have been used automatically. Thus the abs command should only be used in unusual circumstances, or at the direction of the system administrator. This command can be used only in ring 4. Arguments: keyword must be chosen from the keywords listed under "Keyword Summary" below. args may be either job selection arguments, described under "Job Selection" below, or other arguments specific to each keyword, or both. Exact usage is described under individual keywords. Notes on keyword summary: The keywords accepted by the abs command are listed below in two groups: those pertaining to the absentee facility as a whole, and those pertaining to individual jobs. Detailed descriptions of the keywords and their arguments are given under "List of Keyword Descriptions" below. List of keywords: Keywords pertaining to entire absentee facility. cpu_limit do not run jobs with time limits higher than the specified values maxq run only jobs from queues 1 through the specified queue maxu run no more than the specified number of jobs at once qres reserve the specified number of absentee slots for each queue start start absentee facility stop stop absentee facility Keywords pertaining to individual jobs. bump log out running job(s); leave in queue (if restartable) cancel delete job from queue; log out if running defer do not log job(s) in until they are released list list specified job(s) move move job(s) to another queue next log job in next release allow deferred job(s) to run run log job in immediately suspend cause running job(s) to stop running until released terminate same as "bump", but job will appear to have taken a fatal process error Notes on job selection: Some of the keywords described in detail below specify operations that can be performed on a single job only (indicated in keyword usage lines as JOB), while others specify operations that can be performed on one or more jobs (indicated as JOBS). You can specify the job or jobs by using the job selection arguments described below. Each argument can appear at most once in the command. If the request operates on a single job (indicated as JOB), enough job selection arguments must be given so that only one job is found. If the request operates on multiple jobs, all jobs that match the specified job selection arguments are acted upon. To be considered a match, a job must fit all the job selection arguments specified. That is, the selection arguments make selection more specific. For example, "-queue 1" selects all jobs in absentee queue 1. "-queue 1 -user Smith" selects all of Smith's jobs in absentee queue 1, but does not select any other user's jobs, nor does it select any of Smith's jobs that are in other queues. Job selection arguments are not treated as "match at least one" but rather "match all". The job selection arguments can be chosen from the following list (each selection may be specified at most once). absN where N is a decimal number or "*". This selects the running job in absentee slot N, or all running jobs if "*" is given. Slot numbers are printed by the who initializer command or the as_who command in Multics. -entry STR, -et STR where STR is the entryname of the absin segment. It may be a starname. -foreground, -fg this argument is equivalent to the -queue foreground control argument. -id ID, ID where ID can be a long job ID or a substring of a job ID long enough to uniquely identify one job. A long job ID is a 19 digit number of the form shown below. yymmddHHMMSS.UUUUUU which is the time (GMT) at which the job was entered. Any substring of the ID that contains either the decimal point or the digit to its left can be given. If the decimal point is not given, it is assumed to be to the right of the last digit given. Any other job selection arguments given must identify the same job, no matter what keyword it is given with. If the other job selection arguments do not match the uniquely specified job, the command is rejected. Both -user NAME and -id ID may be given without their identifying control arguments if either one, or both, are the first arguments after the keyword. path is the absolute pathname of the absentee input (absin) segment. The pathname may end in a starname. -queue STR, -q STR where STR is the absentee queue to be searched for the job. (If this argument is omitted, all queues are searched.) STR can be 1 through 4 or "foreground" or "fg". -sender STR where STR is the name of the RJE station from which the job was entered. It may be a starname. -user NAME where NAME may be specified in one of the following forms shown below. Person Person Project Person.Project .Project The star convention is allowed except when a single job is selected. Both -user NAME and -id ID may be given without their identifying control arguments if either one, or both, are the first arguments after the keyword. List of keyword descriptions: bump JOBS bumps the specified running job or jobs. If they are restartable jobs, they remain in the queue and are restarted at some later time. cancel JOB deletes a single job from the absentee queues, and bumps it if it is running. Note that some form of the user name must always be given with the cancel keyword as protection against accidental cancellation of the wrong user's job. cpu_limit, cpu_limit auto, cpu_limit s1,s2,s3,s4 either prints the CPU time limits, restores them to their automatic values (which are per-shift values set by the system administrator), or sets them to the specified values. Values, in seconds, must be given for queues 1 through 4, separated by commas. Omitted values (indicated by adjacent commas) leave the limits for the respective shifts unchanged. (Trailing commas are optional.) The limits remain at the specified values until the next Multics bootload, unless reset to their automatic values by specifying cpu_limit auto. Jobs with estimated times greater than the automatic or user-specified CPU time limits are not run until the limits are raised (either by the operator or by the arrival of a shift having higher limits). If no argument is given, the current CPU time limits are printed. defer JOBS places the specified jobs in the deferred state. Jobs in this state are deferred indefinitely, even across Multics bootloads -- that is, they are not run until released (by the abs command with the release keyword). Users can place their own jobs in the deferred state. This is useful if a job is not to be run until the occurrence of some event, such as the delivery of a reel of tape to the computer room. The list keyword (with suitable arguments) can be used to list all jobs that are deferred indefinitely. list JOBS {-control_args} lists the specified jobs. All of the control arguments accepted by the list_abs_requests command (described in the Multics Commands and Active Functions manual, Order No AG92) are accepted with the list keyword. These control arguments are summarized below. -absolute_pathname, -absp prints absolute pathname of selected jobs. (The default is that entry name is printed.) -all, -a prints totals for all nonempty queues. (The default is that nothing is printed for queues from which no jobs are selected.) -deferred_indefinitely, -dfi selects only jobs that are deferred indefinitely. -immediate, -im selects only jobs that are neither deferred indefinitely nor deferred until a specified time. -long, -lg prints all information for each selected job. This argument produces many output lines for each job, and should not be used when a large number of jobs are being listed. -long_id, -lgid prints all 19 digits of IDs of selected jobs. -position, -psn prints the position in the queue of each selected job. -resource {STR}, -rsc {STR} selects only jobs with resource requirements, where STR is the name of a resource. If STR is given, selects only jobs requiring the specified resource (e.g., -rsc tape_drive). -total, -tt prints only the total number of jobs selected from each queue. (The default is that one line is printed for each selected job). maxq, maxq auto, maxq N either prints the highest numbered (lowest priority) queue being searched, restores it to its automatic value (which is a per-shift value set by the system administrator), or sets it to the specified value N. The maximum queue remains at the specified value until the next Multics bootload, unless reset to its automatic value by specifying maxq auto. Jobs from higher numbered queues are not logged in until the maximum queue is raised (either by the operator or by the arrival of a shift with a higher automatic maxq value). If no argument is given, the current maxq figure is printed. maxu, maxu auto, maxu N either prints the number of absentee slots (i.e., the maximum number of simultaneously running background absentee jobs) restores it to its automatic value (a per-shift value set by the system administrator that can optionally adjust itself automatically depending on the interactive load), or sets it to the specified value N. The number of slots remains at the specified value until the next Multics bootload, unless reset to its automatic value by specifying maxu auto. If no argument is given, the current abs maxu value is printed. move JOBS -to_queue N, move JOBS -to_q N moves the specified job or jobs to the end of the specified queue (N). Any jobs already running are not moved. The abs move command operates the same as the move_abs_request command, described in the Multics Commands and Active Functions manual, Order No. AG92, and accepts the same arguments. See that manual for more information. next JOB places the specified job ahead of all other queued jobs, so that it is the next job to log in. The job is actually moved to queue zero, which has higher priority than queue 1. The job is charged queue 1 rates when it runs. A series of abs next commands cause the specified jobs to accumulate in queue zero; they are run in the order in which they are specified. qres, qres auto, qres R1 {R2 {R3 {R4}}} either prints the per-queue reserved slot values, restores them to their automatic per-shift values (specified by the system administrator), or changes them to the specified values. Values for up to 4 queues may be given; zero is the default for any values not given. To set all 4 values to zero, type "abs qres 0". If no arguments are given, the current values are printed. Values set by this command remain in effect until the next Multics bootload, unless restored to their automatic values by specifying qres auto. The slot reservation feature prevents jobs from lower priority queues from logging in if they would occupy slots reserved for higher priority queues. However, jobs from higher priority queues are permitted to log in and occupy slots reserved for lower priority queues. release JOBS releases the specified job(s) from the deferred or suspended states, allowing them to log in, or to resume running, as the case may be. run JOB forces the specified job to be logged in immediately, bypassing all absentee load control processing. A new temporary absentee slot is created, if necessary. Under certain circumstances, the user is warned that logging in the job might create problems, and is asked if the job should be logged in despite the potential problems. Note that some form of the user name must be given with the run keyword. start {M {Q}}, start queue Q the first form is used to start the absentee facility. (It is normally started at answering service startup time, making use of this command unnecessary.) The optional arguments are the maximum numbers of users (M) and queues (Q). (These are the same parameters that can be set by the maxu and maxq keywords.) If they are not specified, the automatic values set by the system administrator are used. The second form restarts a queue that was dropped due to errors, and it also wakes up the absentee facility, causing it to check whether any jobs waiting to log in could now do so due to changed conditions. If Q is omitted in the second form, the current error status of each queue is printed. If Q is "all" then all queues are restarted. stop {now}, stop queue Q the first form is used to stop the absentee facility 30 minutes after the command line is issued. If "now" is specified, the absentee facility is immediately stopped without the 30 minute grace. (See "Notes" below.) The abs stop command can also be given before the answering service is started to prevent the absentee facility from being started automatically. The second form causes the specified queue to be dropped, as if it had gotten too many errors. The absentee facility continues to run, taking requests from the other queues. If Q is "all" then all queues are dropped. The queue(s) can be restarted using the abs start queue command. suspend JOBS causes the specified running job(s) to enter the suspended state, in which they remain logged in but use no cpu or memory resources. The jobs remain in this state until released. A suspended job places no load on the system (although it does occupy an absentee slot and uses up some units from its load control group, possibly preventing other interactive or absentee users from logging in). Jobs can be suspended to reduce the load on the system, allowing the timely completion of some critical work in another process. Suspended jobs should be released as soon as the critical work is completed, since they are NOT preserved across shutdowns and crashes. terminate JOBS causes the specified running job(s) to be bumped in a way that makes them appear to have failed because of a fatal process error. Certain debugging facilities treat such failures differently from normal bumps. This keyword should only be used at the request of the user. Notes: Some of the abs command keywords place the absentee facility, or one or more jobs, in an unusual state, where they will remain indefinitely. You must always remember to restore the absentee facility or the affected jobs to normal operation after the unusual circumstances have passed. The "abs stop" command line should be issued about 20 minutes before a stop command is invoked. If a down command has been issued, "abs stop" is automatically issued 20 minutes before the scheduled shutdown time. After an "abs stop" command line is issued, the absentee facility does not let any more absentee users log in and waits for all current ones to log out. If all absentee users have not logged out in 30 minutes, the absentee facility automatically bumps the remaining absentee users. The difference between the 30-minute time limit on absentee jobs and the 20 minutes between a scheduled shutdown and the automatic "abs stop" is intended to give absentee processes an additional 10 minutes to finish after all interactive users are bumped. If all absentee users log out before 30 minutes, the following message is printed. admin: All absentee processes have run to completion. If not, then this message is printed. admin: bumping all remaining absentee processes. If it is necessary to stop the absentee facility immediately with an "abs stop now" command line, all absentee users are bumped as if the 30-minute time limit had expired. Since this command line forcibly terminates user programs that may have difficulty restarting, the now argument should be used only when specifically authorized. If a down command has scheduled an automatic shutdown, issuing an "abs start" automatically schedules an "abs stop" 20 minutes before the scheduled shutdown time. The "abs bump" command line causes an absentee user to be bumped. If the absentee job has been declared restartable, the job is left in the queue and reexecuted later. This command can be used when shutting down the absentee facility quickly because of some system malfunction, usually at the request of a system programmer. If a user calls and asks to have his absentee job bumped, you should make certain that the "abs cancel" command is not intended instead. The "abs cancel" command line can also cause an absentee user to be bumped. It differs from "abs bump" in that restartable absentee requests are removed from the queue, and not restarted, and jobs not yet started can be removed from the queue. This command line is used to cancel an absentee job that is in trouble (for instance, one that seems to be reissuing itself in a loop, or one that calls for a tape that does not exist) or that a user has requested be cancelled. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved