$! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_VERIFY"))' $! $! This archive created by VMS_SHARE Version 7.2-007 22-FEB-1990 $! On 20-JUN-1990 08:24:14.87 By user TP $! $! This VMS_SHARE Written by: $! Andy Harper, Kings College London UK $! $! Acknowledgements to: $! James Gray - Original VMS_SHARE $! Michael Bednarek - Original Concept and implementation $! $!+ THIS PACKAGE DISTRIBUTED IN 2 PARTS, TO KEEP EACH PART $! BELOW 98 BLOCKS $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. 000README.TXT;1 $! 2. BUILD.COM;3 $! 3. ITEMLIST.H;1 $! 4. STOP_HELP_NEW.HLP;1 $! 5. STOP_HELP_ORIGINAL.HLP;1 $! 6. STOP_HELP_UPDATE.DIF;1 $! 7. STOP_ID.C;3 $! 8. STOP_VERB_NEW.CLD;1 $! 9. STOP_VERB_ORIGINAL.CLD;1 $! 10. STOP_VERB_UPDATE.DIF;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if f$trnlnm("SHARE_LOG") then $ w = "!" $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $UNPACK: SUBROUTINE ! P1=filename, P2=checksum $ if f$search(P1) .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped." $ delete 'f'* $ exit $file_absent: $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'." $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped." $ delete 'f'* $ exit $dirok: $ w "-I-PROCESS, Processing file ''P1'." $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1' PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:= CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b)); LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION( BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1); IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE; MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1; ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")= 1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF"; POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r); ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1; COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE, "output_file"));ENDPROCEDURE;Unpacker;QUIT; $ delete/nolog 'f'* $ CHECKSUM 'P1' $ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT $ e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ ENDSUBROUTINE $START: $ create 'f' X`09 These files comprise the collection needed to modify the X`09STOP/ID command to add extra functionality. `20 X X`09Features: X`09`09o Only last four digits required on PID X`09`09o Leading zeros may be ommited (of last four digits) X`09`09o Adds /NODELPRC to allow $FORCEXing an image X`09`09o Adds /NOW to immediately $DELPRC a process X`09`09o When used without qualifiers does a $FORCEX, X`09`09 waits for image exit, and does $DELPRC. X`09`09o Adds /PATIENCE to let default option wait longer X`09`09 for image rundown after $FORCEX, and then $DELPRC. X X`09Files: X X`09`09FILE NAME`09SIZE (BLOCKS)`09PURPOSE X X`09`09000README.TXT`09`094`09This text X`09`09BUILD.COM`09`098`09Procedure to build and install X`09`09`09`09`09`09all the required elements X`09`09ITEMLIST.H`09`091`09Used by the C-code. X`09`09STOP_HELP_NEW.HLP`0933`09The new HELP STOP /ID X`09`09STOP_HELP_ORIGINAL.HLP`0929`09VMS V5.2 standard HELP STOP/ID X`09`09STOP_HELP_UPDATE.DIF`095`09See note below X`09`09STOP_ID.C`09`0919`09The main program X`09`09STOP_VERB_NEW.CLD`094`09The new STOP command verb X`09`09STOP_VERB_ORIGINAL.CLD`094`09VMS V5.2 standard STOP verb X`09`09STOP_VERB_UPDATE.DIF`091`09See note below X X X`09NOTE ON .DIF FILES: X X`09`09The .DIF files were produced by doing a DIFF/SLP on the X`09`09original and ending files. The resultant .DIF file may`20 X`09`09be used to recreate the change in similar files. X`09`09EDIT/SUM/UPDATE=file.DIF original_file /OUT=new_file X`09`09(ex: EDIT/SUM/UPDATE=STOP_HELP_UPDATE.DIF - X`09`09`09STOP_HELP_ORIGINAL /OUT=STOP_HELP_NEW.HLP X`09`09`09will recreate the new help from the current X`09`09`09one and the .DIF file). X X`09Building: X`09`09Type @BUILD. Note that by specifying a non-blank X`09`09parameter, all moves will request user confirmation before X`09`09doing them. X X`09Author: X X`09`09Ehud Gavron, Systems Analyst`09gavron@sunquest.com X`09`09Sunquest Information Systems`09uunet!sunquest!gavron X`09`09930 N. Finance Center Drive,`09sunquest!gavron@cs.arizona.edu X`09`09Suite 130, Tucson, AZ 85710`09gavron@lampf.bitnet X`09`09(602)722-7546 (602)885-7700`091029::55295::gavron (HEP/SPAN) $ CALL UNPACK 000README.TXT;1 789386435 $ create 'f' X$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! V!!! X$! X$! Build.Com`09(STOP_ID.C)`0907-Jun-1990`09`09`09Ehud Gavron X$! X$! This procedure rebuilds the STOP_ID code and resets the verb. X$! X$! if optional parameter P1 is non-blank, then the procedure queries X$! the user at every step. X$! X$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! V!! X$! X$! Set command symbols to avoid conflicts: X$! X$ cc `09= "CC" X$ link `09= "LINK/NOTRACE" X$ ins `09= "$INSTALL/COMMAND" X$ set`09= "SET" X$ copy`09= "COPY" X$ delete= "DELETE" X$ if = "IF" X$ then`09= "THEN" X$ else = "ELSE" X$ endif = "ENDIF" X$ filelist = "stop_id.c/itemlist.h/stop_verb_new.cld" X$! X$! X$! See if user wants confirmation on each operationl: X$! X$ if "''p1'" .eqs. ""`20 X$ then X$ cfm = "FALSE" X$ else X$ cfm = "TRUE" X$ endif X$! X$! X$! Check the existence of required files: X$! X$ call confirm "Shall I check for the existence of the required files?" X$ if (ans)`20 X$ then X$ element = 0 X$reqfileloop: X$ substr = f$element(element,"/",filelist+"/") X$ element = element + 1 X$ if f$length(substr) .lt. 3 then goto endreqfileloop X$ f=f$search(substr) X$ if f .nes. "" then goto reqfileloop X$ write sys$output "%BUILD-F-REQFILMIS, A required file is missing" X$ write sys$output "-RMS-E-FNF, File not found /''substr'/" X$ exit X$endreqfileloop: X$ endif X$! X$! X$! Compile it: X$! X$ call confirm "Shall I compile the source code?" X$ if (ans) then cc stop_id.c X$! X$! X$! Link it: X$! X$ call confirm "Shall I link the source code?" X$ if (ans) then link/notrace stop_id.obj X$! X$!`20 X$! Move it to the system directory: X$! X$ call confirm "Shall I move it to SYS$COMMON:`5BSYSEXE`5D?" X$ if (ans)`20 X$ then`20 X$ copy stop_id.exe sys$common:`5Bsysexe`5D X$ delete stop_id.exe; X$ endif X$! X$! X$! Install it with CMKRNL privilege: X$! X$ call confirm "Shall I install it with the correct privileges?" X$ if (ans)`20 X$ then X$ if (f$file_attributes("sys$common:`5Bsysexe`5Dstop_id.exe","known")) t Vhen - X$ ins rem sys$system:stop_id X$ ins add sys$system:stop_id/open/header/shar/priv=cmkrnl X$ endif X$! X$! X$! Update DCLTABLES: X$! X$ call confirm "Shall I modify DCLTABLES with the new verb?" X$ if (ans)`20 X$ then X$ fullname = f$element(0,";",f$search("sys$share:dcltables.exe")) X$ set command/table='fullname'/output='fullname'/replace stop_verb_new X$ old_def = f$environment("DEFAULT") X$ set default sys$library X$ copy dcltables.exe dcltest.exe X$ ins add sys$library:dcltest X$ if ($status)`20 X$ then X$ ins remove sys$library:dcltest X$ Ins Replace Sys$Library:DCLTABLES X$ delete sys$Library:dcltest.exe;* X$ else X$ ins remove sys$library:dcltest X$ delete dcltest.exe;* X$ write sys$output "%BUILD-E-INSTFAIL, The new command tables were n Vot installed" X$ write sys$output "-I-GBLFULL, Global something or other is full." X$ write sys$output "-I-LATER, Install them later, or reboot at your V leisure." X$ endif X$ set def 'old_def' X$ endif X$! X$! X$! Update the system help library: X$! X$ call confirm "Shall I update the system help library?" X$ if (ans) then library/replace/help sys$help:helplib.hlb`20 X$! X$! X$! Notify system management of image install requirements: X$! X$ type/nopage sys$input X X`09* NOTE: You must make sure that on subsequent reboots, X`09`09the file sys$system:stop_id.exe is installed X`09`09with CMKRNL privileges. An easy way to do X`09`09this is add the following lines to`20 X`09`09SYS$MANAGER:SYSTARTUP_V5.COM: X X`09`09$install == "$install/command" X`09`09$install add sys$system:stop_id/open/head/shar/priv=cmkrnl X X`09***** Installation complete ***** X$ exit`20 X$Confirm: Subroutine X$ ans == "TRUE" X$ if (cfm) then inquire/nopunct/global ans "''p1'" X$ exit $ CALL UNPACK BUILD.COM;3 908407385 $ create 'f' Xtypedef union `7B X`09struct `7B X`09`09short s_buflen; X`09`09short s_itemcode; X`09`09char *s_bufaddr; X`09`09short *s_retlen; X`09`09`7D s; X`09int end; X`09`7D ITEMLIST; X X#define`09buflen`09`09s.s_buflen X#define`09itemcode`09s.s_itemcode X#define`09bufaddr`09`09s.s_bufaddr X#define`09retlen`09`09s.s_retlen $ CALL UNPACK ITEMLIST.H;1 257426955 $ create 'f' X1 STOP X Terminates execution of: X X o A command, image, or command procedure that was interrupted by X CTRL/Y X X o A command procedure X X o A subprocess or a detached process X X For information on pausing and stopping queues, see STOP/QUEUE. X X For information on stopping secondary processors in a VMS X multiprocessing system, see STOP/CPU. X X Format: X X STOP `5Bprocess-name`5D X X2 Parameters X X process-name X X Specifies the name of the process to be deleted. The process name X can have from 1 to 15 alphanumeric characters. The specified X process must have the same group number in its user identification X code (UIC) as the current process. You cannot specify the X process-name for a process outside of your group. To stop a process X outside of your group, you must use the qualifier X /IDENTIFICATION=pid. X X If you use the /IDENTIFICATION qualifier, the process name is X ignored. If you include neither the process-name parameter nor the X /IDENTIFICATION qualifier with the STOP command, the image executing X in the current process is terminated. X2 Command_Qualifiers X X/IDENTIFICATION X /IDENTIFICATION=pid X X Specifies the process identification code (PID) that the system has X assigned to the process. This command will then terminate any X running MUMPS images (if any), and delete the process. The system X will allow up to three seconds for said MUMPS program to exit. In X the event you wish a faster or slower time, please see qualifiers`20 X /NOW and /PATIENCE. (c)1990 SIS X X You may specify the PID by its last four digits, and may omit any X leading zeros. X X X/NOW X /NOW`20 X`20 X This qualifier is only valid when used in conjunction with the X /IDENTIFICATION qualifier. Indicates that the process specified`20 X by its process identification code (PID) will be killed immediately. X (c)1990 SIS X X/PATIENCE X /PATIENCE `5B`5D X X This qualifier is only valid when used in conjunction with the X /IDENTIFICATION qualifier. Indicates that the process specified`20 X can use extra time (up to 30 seconds) to exit its image.`20 X (c)1990 SIS X X/NODELPRC X /NODELPRC `5B`5D X X This qualifier is only valid when used in conjunction with the X /IDENTIFICATION qualifier. Indicates that the process specified`20 X will not be deleted. Instead only the image executing within the`20 X process will terminate. `20 X (c)1990 SIS X X2 Examples X X 1. $ RUN MYPROG X . X . X . X X Interrupt X X $ STOP X X The RUN command begins executing the image MYPROG. Subsequently, X CTRL/Y interrupts the execution. The STOP command then terminates X the image. X X 2. $ @TESTALL X . X . X . X X Interrupt X X $ STOP X X The @ (Execute Procedure) command executes the procedure X TESTALL.COM. CTRL/Y interrupts the procedure. The STOP command X returns control to the DCL command interpreter. X X 3. $ RUN/PROCESS_NAME=LIBRA LIBRA X %RUN-S-PROC_ID, identification of created process is 0013340D X . X . X . X X $ STOP LIBRA X X The RUN command creates a subprocess named LIBRA to execute the X image LIBRA.EXE. Subsequently, the STOP command causes the image to X exit and deletes the process. X X 3.a $ RUN/DETACH LIBRA X %RUN-S-PROC_ID, identification of created process is 2DC001334 X . X . X . X $ STOP/IDENTIFICATION=1334`20 X If it's a MUMPS program, asks the MUMPS program to exit X and waits up to three seconds for such. Then kills the X process. X X or $ STOP/IDENTIFICATION=1334/PATIENCE X If it's a MUMPS program, asks the MUMPS program to exit X and waits up to thirty seconds for such. Then kills the X process. Note that this qualifier has no effect on non- X MUMPS jobs. X `20 X or $ STOP/IDENTIFICATION=1334/NOW X Unconditionally kills the process. X`20 X or $ STOP/IDENTIFICATION=1334/NODELPRC X Unconditionally asks the running image to exit. X X X 4. $ ON ERROR THEN STOP X . X . X . X X In a command procedure, the ON command establishes a default action X when any error occurs in the execution of a command or program. The X STOP command stops all command levels. If this ON command is X executed in a command procedure which in turn is executed from X within another procedure, control does not return to the outer X procedure, but to DCL command level 0. X2 /CPU X Stops the specified secondary processor or processors in a VMS X multiprocessing system. The /CPU qualifier is required. X`20 X Requires change mode to kernel (CMKRNL) privilege. X X X Format: X X STOP/CPU `5Bcpu-id,...`5D X3 Parameter X X cpu-id X X Decimal value representing the identity of a processor in a X multiprocessing system. In a VAX 8300 system, for instance, the X cpu-id is the VAXBI node number of the processor; in a VAX 8800, the X cpu-id of the left processor is 1 and that of the right processor is X 0. If you do not specify a cpu-id, the STOP/CPU command selects a X processor in the current active set to stop. X3 Qualifiers X X/ALL X X /ALL X X Stops all eligible secondary processors in the system's active set. X X/OVERRIDE_CHECKS X X /OVERRIDE_CHECKS X X Directs the STOP/CPU command to bypass a series of checks that X determine whether the specified processor is eligible for removal X from the active set. X X3 Examples X X 1. $ STOP/CPU X X The STOP/CPU command selects a processor from the multiprocessing X system's active set and attempts to place it in the STOPPED state. X X 2. $ STOP/CPU 04,07 X X The STOP/CPU command selects the processors with cpu-ids 04 and 07 X and attempts to place them in the STOPPED state. X X 3. $ STOP/CPU/OVERRIDE_CHECKS 08 X X The STOP/CPU/OVERRIDE_CHECKS command unconditionally stops the X processor with the cpu-id of 08 and removes it from active X participation in the multiprocessing system. X X 4. $ STOP/CPU/ALL X X The STOP/CPU/ALL command stops all eligible secondary processors in X the active set and removes them from the multiprocessing system. X `20 X2 /QUEUE X The STOP/QUEUE command causes the specified execution queue to X pause. The /QUEUE qualifier is required. X X o Cause executing jobs in the specified output queue to be stopped X (see /ABORT). X X o Cause executing jobs in the specified batch queue to be stopped X (see /ENTRY). X X o Perform an orderly shutdown of the system job queue manager on X the node from which the command is issued (see /MANAGER). X X o Cause the specified queue to stop after all executing jobs have X completed processing (see /NEXT). X X o Cause the executing jobs in the specified queue to be stopped and X requeues it for later processing (see /REQUEUE). X X o Abruptly stop the queue and return control to the system (see X /RESET). X X Format: X X X STOP/QUEUE queue-name`5B:`5D X3 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to pause. X X3 Examples X X 1. $ STOP/QUEUE LPA0 X X This STOP/QUEUE command halts the current print job in the queue X LPA0 and places that queue in the paused state. X X 2. $ STOP/QUEUE TEXTBATCH X . X . X . X $ START/QUEUE/BLOCK_LIMIT=500 TEXTBATCH X X This STOP/QUEUE command halts all batch jobs that are currently X executing on the queue TEXTBATCH and places that queue in the paused X state. Later the START/QUEUE command releases the queue from the X paused state. All the jobs that were halted will resume processing, X but the START/QUEUE command now limits any further jobs to 500 X blocks or smaller. X3 /ABORT X X Aborts a job that is printing or processing on an output queue,`20 X deletes it from the queue, and begins processing the first pending`20 X job in the queue. The /QUEUE qualifier is optional, but the /ABORT`20 X qualifier is required. X X Requires OPER privilege, EXECUTE (E) access to the queue, or DELETE`20 X (D) access to the current job. X X Format: X X X STOP/QUEUE/ABORT queue-name`5B:`5D X4 Parameters X X queue-name X X Specifies the name of the queue containing the job you want to X stop. X X3 /ENTRY X X Aborts one or more jobs that are executing on a batch queue or`20 X printing on an output queue, deletes them from the queue, and begins`20 X processing the first pending job in the queue. The /QUEUE qualifier`20 X is optional, but the /ENTRY qualifier is required. X X Requires OPER privilege, EXECUTE (E) access to the queue, or DELETE`20 X (D) access to the current job. X X Format: X X STOP/QUEUE/ENTRY=(entry-number`5B,...`5D) `5Bqueue-name`5B:`5D`5D X X4 Parameters X X X entry-number`5B,...`5D X X Specifies the entry number (or a list of entry numbers) of jobs to`20 X be deleted. If you specify only one entry number, you can omit the`20 X parentheses. If you do not specify a queue name, you can delete`20 X entries from multiple queues. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X X `5Bqueue-name`5B:`5D`5D X X Specifies the name of the queue that contains the jobs that you want`20 X to abort. The queue name can refer either to the queue to which the`20 X job was submitted or to the queue where the job is executing. The`20 X queue-name parameter is optional syntax. However, when you specify a`20 X queue name, the VMS operating system uses it to verify an entry in`20 X the specific queue before stopping and deleting the entry. X X3 /MANAGER X Performs an orderly shutdown of the system job queue manager on the X node from which the command is issued. The /QUEUE qualifier is X optional, but you must specify the /MANAGER qualifier. X X Format: X X X STOP/QUEUE/MANAGER `20 X X3 /NEXT X Causes the specified queue to stop after all executing jobs have X completed processing. The /QUEUE qualifier is optional, but you X must specify the /NEXT qualifier. X X Format: X X X STOP/QUEUE/NEXT queue-name`5B:`5D X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to stop. X X3 /REQUEUE X X Stops the current jobs on the specified queue and requeues them for`20 X later processing. The queue does not stop; processing of the first`20 X pending job in the queue begins. The /QUEUE qualifier is optional,`20 X but the /REQUEUE qualifier is required. The /ENTRY qualifier is`20 X required to requeue batch jobs. X X Requires OPER privilege, EXECUTE access to the queue or DELETE`20 X access to the current job. X X Format: X X STOP/QUEUE/REQUEUE`5B=queue-name`5D queue-name`5B:`5D X X STOP/QUEUE/REQUEUE/ENTRY=(entry-number`5B,...`5D) `5B=queue-name`5D queue- Vname`5B:`5D X X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that contains the jobs that you want`20 X to stop. When you specify a queue name as a parameter for the`20 X /REQUEUE qualifier, the jobs are requeued to that queue. Otherwise,`20 X the jobs are requeued in the current queue. X X entry-number`5B,...`5D X `20 X Specifies the entry number (or a list of entry numbers) of the jobs`20 X you want to requeue. If you specify only one entry number, you can`20 X omit the parentheses. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X `20 X4 Command_Qualifiers X X/ENTRY X /ENTRY=(entry-number`5B,...`5D) X X Specifies the entry number of one or more jobs you want to abort. If`20 X you specify only one entry number, you can omit the parentheses. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X X You must use the /ENTRY qualifier when you enter the STOP/QUEUE`20 X /REQUEUE command for a batch queue. Entry numbers specified must`20 X match entry numbers of executing jobs. X X/HOLD X X /HOLD X X Places the aborted job or jobs in a hold state for later release`20 X with the SET ENTRY/RELEASE or SET ENTRY/NOHOLD command. X X/PRIORITY X /PRIORITY=n X X Requires OPER or ALTPRI privilege to raise the priority value above`20 X the value of the SYSGEN parameter MAXQUEPRI. X X Changes the priority of the requeued job or jobs. The n parameter`20 X can be from 0 to 255; the default value of the n parameter is the`20 X same as the priority value that the job or jobs had when it was`20 X stopped.`20 X X Generally, the /PRIORITY qualifier is used to lower the priority of`20 X a job or jobs, which ensures that the job or jobs runs when the`20 X queue contains no other jobs. No privilege is needed to set the`20 X priority lower than the MAXQUEPRI value. X X4 Examples X X 1. $ STOP/QUEUE/REQUEUE=LPB0 LPA0 X X In this example, the current print job on queue LPA0 is stopped and`20 X requeued to queue LPB0. If the print symbiont sent checkpoint`20 X information about the print job to the job controller, printing`20 X resumes on LPB0 at the last checkpoint recorded. X X 2. $ STOP/QUEUE/REQUEUE/HOLD LPA0 X X . X X . X X . X X $ SET ENTRY 254/RELEASE X `20 X In this example, the current print job on LPA0 is suspended and`20 X placed in the hold state. Later, when you enter the SET ENTRY`20 X command with the /RELEASE qualifier, the job is released from the`20 X hold state and rescheduled to print on queue LPA0. If the print`20 X symbiont sent checkpoint information about the print job to the job`20 X controller, printing resumes at the last checkpoint. X X 3. $ STOP/QUEUE/REQUEUE/ENTRY=758 SYS$BATCH X X In this example, batch job number 758 is stopped and requeued for`20 X later processing on SYS$BATCH. If the batch job has been programmed`20 X with appropriate SET RESTART_VALUE commands, those portions of the`20 X job that have completed successfully are not rerun. X X3 /RESET X X Abruptly stops the queue and returns control to the system. Any jobs`20 X currently executing are stopped immediately. The START/QUEUE command`20 X restarts the queue. Current jobs that can be restarted (all print`20 X jobs and any batch jobs submitted with the /RESTART qualifier) are`20 X requeued for processing. Current jobs that cannot be restarted are`20 X aborted and must be resubmitted for processing. The /QUEUE qualifier`20 X is optional, but you must specify the /RESET qualifier. X X Requires OPER privilege or EXECUTE (E) access to the specified`20 X queue.`20 X X Format: X X X STOP/QUEUE/RESET queue-name`5B:`5D X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to reset. X $ CALL UNPACK STOP_HELP_NEW.HLP;1 424052005 $ create 'f' X1 STOP X Terminates execution of: X X o A command, image, or command procedure that was interrupted by X CTRL/Y X X o A command procedure X X o A subprocess or a detached process X X For information on pausing and stopping queues, see STOP/QUEUE. X X For information on stopping secondary processors in a VMS X multiprocessing system, see STOP/CPU. X X Format: X X STOP `5Bprocess-name`5D X X2 Parameters X X process-name X X Specifies the name of the process to be deleted. The process name X can have from 1 to 15 alphanumeric characters. The specified X process must have the same group number in its user identification X code (UIC) as the current process. You cannot specify the X process-name for a process outside of your group. To stop a process X outside of your group, you must use the qualifier X /IDENTIFICATION=pid. X X If you use the /IDENTIFICATION qualifier, the process name is X ignored. If you include neither the process-name parameter nor the X /IDENTIFICATION qualifier with the STOP command, the image executing X in the current process is terminated. X2 Command_Qualifiers X X/IDENTIFICATION X /IDENTIFICATION=pid X X Specifies the process identification code (PID) that the system has X assigned to the process. When you create a process with the RUN X command, the RUN command displays the process identification code of X the newly created process. X X You can omit any leading zeros in specifying the PID. X X2 Examples X X 1. $ RUN MYPROG X . X . X . X X Interrupt X X $ STOP X X The RUN command begins executing the image MYPROG. Subsequently, X CTRL/Y interrupts the execution. The STOP command then terminates X the image. X X 2. $ @TESTALL X . X . X . X X Interrupt X X $ STOP X X The @ (Execute Procedure) command executes the procedure X TESTALL.COM. CTRL/Y interrupts the procedure. The STOP command X returns control to the DCL command interpreter. X X 3. $ RUN/PROCESS_NAME=LIBRA LIBRA X %RUN-S-PROC_ID, identification of created process is 0013340D X . X . X . X X $ STOP LIBRA X X The RUN command creates a subprocess named LIBRA to execute the X image LIBRA.EXE. Subsequently, the STOP command causes the image to X exit and deletes the process. X X 4. $ ON ERROR THEN STOP X . X . X . X X In a command procedure, the ON command establishes a default action X when any error occurs in the execution of a command or program. The X STOP command stops all command levels. If this ON command is X executed in a command procedure which in turn is executed from X within another procedure, control does not return to the outer X procedure, but to DCL command level 0. X2 /CPU X Stops the specified secondary processor or processors in a VMS X multiprocessing system. The /CPU qualifier is required. X`20 X Requires change mode to kernel (CMKRNL) privilege. X X X Format: X X STOP/CPU `5Bcpu-id,...`5D X3 Parameter X X cpu-id X X Decimal value representing the identity of a processor in a X multiprocessing system. In a VAX 8300 system, for instance, the X cpu-id is the VAXBI node number of the processor; in a VAX 8800, the X cpu-id of the left processor is 1 and that of the right processor is X 0. If you do not specify a cpu-id, the STOP/CPU command selects a X processor in the current active set to stop. X3 Qualifiers X X/ALL X X /ALL X X Stops all eligible secondary processors in the system's active set. X X/OVERRIDE_CHECKS X X /OVERRIDE_CHECKS X X Directs the STOP/CPU command to bypass a series of checks that X determine whether the specified processor is eligible for removal X from the active set. X X3 Examples X X 1. $ STOP/CPU X X The STOP/CPU command selects a processor from the multiprocessing X system's active set and attempts to place it in the STOPPED state. X X 2. $ STOP/CPU 04,07 X X The STOP/CPU command selects the processors with cpu-ids 04 and 07 X and attempts to place them in the STOPPED state. X X 3. $ STOP/CPU/OVERRIDE_CHECKS 08 X X The STOP/CPU/OVERRIDE_CHECKS command unconditionally stops the X processor with the cpu-id of 08 and removes it from active X participation in the multiprocessing system. X X 4. $ STOP/CPU/ALL X X The STOP/CPU/ALL command stops all eligible secondary processors in X the active set and removes them from the multiprocessing system. X `20 X2 /QUEUE X The STOP/QUEUE command causes the specified execution queue to X pause. The /QUEUE qualifier is required. X X o Cause executing jobs in the specified output queue to be stopped X (see /ABORT). X X o Cause executing jobs in the specified batch queue to be stopped X (see /ENTRY). X X o Perform an orderly shutdown of the system job queue manager on X the node from which the command is issued (see /MANAGER). X X o Cause the specified queue to stop after all executing jobs have X completed processing (see /NEXT). X X o Cause the executing jobs in the specified queue to be stopped and X requeues it for later processing (see /REQUEUE). X X o Abruptly stop the queue and return control to the system (see X /RESET). X X Format: X X X STOP/QUEUE queue-name`5B:`5D X3 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to pause. X X3 Examples X X 1. $ STOP/QUEUE LPA0 X X This STOP/QUEUE command halts the current print job in the queue X LPA0 and places that queue in the paused state. X X 2. $ STOP/QUEUE TEXTBATCH X . X . X . X $ START/QUEUE/BLOCK_LIMIT=500 TEXTBATCH X X This STOP/QUEUE command halts all batch jobs that are currently X executing on the queue TEXTBATCH and places that queue in the paused X state. Later the START/QUEUE command releases the queue from the X paused state. All the jobs that were halted will resume processing, X but the START/QUEUE command now limits any further jobs to 500 X blocks or smaller. X3 /ABORT X X Aborts a job that is printing or processing on an output queue,`20 X deletes it from the queue, and begins processing the first pending`20 X job in the queue. The /QUEUE qualifier is optional, but the /ABORT`20 X qualifier is required. X X Requires OPER privilege, EXECUTE (E) access to the queue, or DELETE`20 X (D) access to the current job. X X Format: X X X STOP/QUEUE/ABORT queue-name`5B:`5D X4 Parameters X X queue-name X X Specifies the name of the queue containing the job you want to X stop. X X3 /ENTRY X X Aborts one or more jobs that are executing on a batch queue or`20 X printing on an output queue, deletes them from the queue, and begins`20 X processing the first pending job in the queue. The /QUEUE qualifier`20 X is optional, but the /ENTRY qualifier is required. X X Requires OPER privilege, EXECUTE (E) access to the queue, or DELETE`20 X (D) access to the current job. X X Format: X X STOP/QUEUE/ENTRY=(entry-number`5B,...`5D) `5Bqueue-name`5B:`5D`5D X X4 Parameters X X X entry-number`5B,...`5D X X Specifies the entry number (or a list of entry numbers) of jobs to`20 X be deleted. If you specify only one entry number, you can omit the`20 X parentheses. If you do not specify a queue name, you can delete`20 X entries from multiple queues. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X X `5Bqueue-name`5B:`5D`5D X X Specifies the name of the queue that contains the jobs that you want`20 X to abort. The queue name can refer either to the queue to which the`20 X job was submitted or to the queue where the job is executing. The`20 X queue-name parameter is optional syntax. However, when you specify a`20 X queue name, the VMS operating system uses it to verify an entry in`20 X the specific queue before stopping and deleting the entry. X X3 /MANAGER X Performs an orderly shutdown of the system job queue manager on the X node from which the command is issued. The /QUEUE qualifier is X optional, but you must specify the /MANAGER qualifier. X X Format: X X X STOP/QUEUE/MANAGER `20 X X3 /NEXT X Causes the specified queue to stop after all executing jobs have X completed processing. The /QUEUE qualifier is optional, but you X must specify the /NEXT qualifier. X X Format: X X X STOP/QUEUE/NEXT queue-name`5B:`5D X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to stop. X X3 /REQUEUE X X Stops the current jobs on the specified queue and requeues them for`20 X later processing. The queue does not stop; processing of the first`20 X pending job in the queue begins. The /QUEUE qualifier is optional,`20 X but the /REQUEUE qualifier is required. The /ENTRY qualifier is`20 X required to requeue batch jobs. X X Requires OPER privilege, EXECUTE access to the queue or DELETE`20 X access to the current job. X X Format: X X STOP/QUEUE/REQUEUE`5B=queue-name`5D queue-name`5B:`5D X X STOP/QUEUE/REQUEUE/ENTRY=(entry-number`5B,...`5D) `5B=queue-name`5D queue- Vname`5B:`5D X X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that contains the jobs that you want`20 X to stop. When you specify a queue name as a parameter for the`20 X /REQUEUE qualifier, the jobs are requeued to that queue. Otherwise,`20 X the jobs are requeued in the current queue. X X entry-number`5B,...`5D X `20 X Specifies the entry number (or a list of entry numbers) of the jobs`20 X you want to requeue. If you specify only one entry number, you can`20 X omit the parentheses. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X `20 X4 Command_Qualifiers X X/ENTRY X /ENTRY=(entry-number`5B,...`5D) X X Specifies the entry number of one or more jobs you want to abort. If`20 X you specify only one entry number, you can omit the parentheses. X X The system assigns a unique entry number to each queued print or`20 X batch job in the system. By default, the PRINT and SUBMIT commands`20 X display the entry number when they successfully queue a job for`20 X processing. These commands also create or update the local symbol`20 X $ENTRY to reflect the entry number of the most recently queued job.`20 X To find a job's entry number, enter the SHOW ENTRY or SHOW QUEUE`20 X command.`20 X X You must use the /ENTRY qualifier when you enter the STOP/QUEUE`20 X /REQUEUE command for a batch queue. Entry numbers specified must`20 X match entry numbers of executing jobs. X X/HOLD X X /HOLD X X Places the aborted job or jobs in a hold state for later release`20 X with the SET ENTRY/RELEASE or SET ENTRY/NOHOLD command. X X/PRIORITY X /PRIORITY=n X X Requires OPER or ALTPRI privilege to raise the priority value above`20 X the value of the SYSGEN parameter MAXQUEPRI. X X Changes the priority of the requeued job or jobs. The n parameter`20 X can be from 0 to 255; the default value of the n parameter is the`20 X same as the priority value that the job or jobs had when it was`20 X stopped.`20 X X Generally, the /PRIORITY qualifier is used to lower the priority of`20 X a job or jobs, which ensures that the job or jobs runs when the`20 X queue contains no other jobs. No privilege is needed to set the`20 X priority lower than the MAXQUEPRI value. X X4 Examples X X 1. $ STOP/QUEUE/REQUEUE=LPB0 LPA0 X X In this example, the current print job on queue LPA0 is stopped and`20 X requeued to queue LPB0. If the print symbiont sent checkpoint`20 X information about the print job to the job controller, printing`20 X resumes on LPB0 at the last checkpoint recorded. X X 2. $ STOP/QUEUE/REQUEUE/HOLD LPA0 X X . X X . X X . X X $ SET ENTRY 254/RELEASE X `20 X In this example, the current print job on LPA0 is suspended and`20 X placed in the hold state. Later, when you enter the SET ENTRY`20 X command with the /RELEASE qualifier, the job is released from the`20 X hold state and rescheduled to print on queue LPA0. If the print`20 X symbiont sent checkpoint information about the print job to the job`20 X controller, printing resumes at the last checkpoint. X X 3. $ STOP/QUEUE/REQUEUE/ENTRY=758 SYS$BATCH X X In this example, batch job number 758 is stopped and requeued for`20 X later processing on SYS$BATCH. If the batch job has been programmed`20 X with appropriate SET RESTART_VALUE commands, those portions of the`20 X job that have completed successfully are not rerun. X X3 /RESET X X Abruptly stops the queue and returns control to the system. Any jobs`20 X currently executing are stopped immediately. The START/QUEUE command`20 X restarts the queue. Current jobs that can be restarted (all print`20 X jobs and any batch jobs submitted with the /RESTART qualifier) are`20 X requeued for processing. Current jobs that cannot be restarted are`20 X aborted and must be resubmitted for processing. The /QUEUE qualifier`20 X is optional, but you must specify the /RESET qualifier. X X Requires OPER privilege or EXECUTE (E) access to the specified`20 X queue.`20 X X Format: X X X STOP/QUEUE/RESET queue-name`5B:`5D X4 Parameters X X queue-name`5B:`5D X X Specifies the name of the queue that you want to reset. X $ CALL UNPACK STOP_HELP_ORIGINAL.HLP;1 1615291213 $ create 'f' X- 41, 46 X Specifies the process identification code (PID) that the system has X assigned to the process. This command will then terminate any X running MUMPS images (if any), and delete the process. The system X will allow up to three seconds for said MUMPS program to exit. In X the event you wish a faster or slower time, please see qualifiers`20 X /NOW and /PATIENCE. (c)1990 SIS X X You may specify the PID by its last four digits, and may omit any X leading zeros. X X X X#include X#include X#include X#include "itemlist.h" X X#define check_status(x) `7Bif ( (sav_stat = x) != SS$_NORMAL) exit(sav_stat) V; `7D X#define exit(x) `09`7Bsys$exit(x); `7D X Xtypedef short boolean; X X/* room to hold the null-terminated image name */ X#define`09MAXFILESPECLEN`09252 X#define MAXPIDLEN`098 Xstatic char pid_buffer`5BMAXPIDLEN + 1`5D;`09`09/* null for desc init */ Xstatic char image_buffer`5BMAXFILESPECLEN + 1`5D;`09/* null for desc init */ Xboolean NOW;`09`09`09`09/* Qualifer for /I_REALLY_MEAN_IT */ Xboolean PATIENCE;`09`09`09/* Qualifier for /TAKE_YOUR_TIME */ Xboolean NODELPRC;`09`09`09/* Qualifier for /Just_Forcex_it */ Xunsigned long sav_stat;`09`09`09`09/* Save status for exit call`09*/ Xunsigned long event_flag; Xunsigned long wait_flag; X X#define`09MAX_WAIT_COUNT`093`09/* wait this many times for image to exit */ X#define PATIENCE_WAIT 30`09/* and this much if /PATIENCE was used`09 */ X X#define TRUE`091`09`09/* If stdio not include, define this */ X#define FALSE`090`09`09/* If stdio not include, define this */ X#define NULL`09(void *) 0`09/* If stdio not include, define this */ X Xstatic $DESCRIPTOR(id_desc,"IDENTIFICATION");`09/* Store pid qualifier name V */ Xstatic $DESCRIPTOR(dm_desc,"NOW");`09`09/* Store NOW qual name */ Xstatic $DESCRIPTOR(pt_desc,"PATIENCE");`09`09/* Store patience qual name */ Xstatic $DESCRIPTOR(fx_desc,"NODELPRC");`09`09/* Store forcex qual name */ Xstatic $DESCRIPTOR(idval_desc,pid_buffer);`09/* Desc for pid-val returned*/ Xstatic $DESCRIPTOR(imagename,image_buffer);`09/* Desc for name returned */ X +-+-+-+-+-+-+-+- END OF PART 1 +-+-+-+-+-+-+-+-