ABORTPROC



ABORTPROC

     The ABORTPROC command aborts the specified process(es).
This command requires OP or SM capability.

SYNTAX

     ABORTPROC [ [PIN=]{pinspec                 }]
{(pinspec [,pinspec ]...)}
[;SYSTEM]

PARAMETERS


pinspec The process(es) to abort. This is a required
parameter. The syntax for pinspec is:
[#P]pin[.tid]

where PIN is the Process ID number and TID is
an optional thread ID number. A leading "#P"
is optional.

To abort more than one process, a list of PINSPECs
can be specified. The list is enclosed in
parenthesis and individual PINSPECs are separated by
commas. If a list is specified it is processed in
order, from left to right. ABORTPROC stops
processing the list if an error is detected.
Duplicate PINs are not detected.

Although a PIN value of zero has meaning in the
SHOWPROC and ALTPROC commands, it is invalid in
ABORTPROC. To kill yourself use the HPPIN variable,
e.g., ABORTPROC !hppin


SYSTEM The SYSTEM option is necessary if the target
process is a detached system process. SM capability
is required to use the SYSTEM option.

All processes in MPE/iX of fall into one of six
process types shown below. Processes with a process
type greater than or equal to four are considered
system processes. System processes are not
abortable unless they have a process type of five
indicating they are "detached".

Process
Type Abortable Restrictions
-----------------------------------------------
0 User Y SM or OP capability.
1 Son Y SM or OP capability.
2 Usermain Y SM or OP capability.
(CI)
3 reserved n/a n/a
4 System N Not Abortable
5 Detached Y Must specify ;SYSTEM. SM
capability is required.
6 Ucop N Not Abortable
(JSMAIN)
7 reserved n/a n/a

Processes with a process type of 0, 1 or 2 are
considered user processes, and are abortable by any
user with SM or OP capabilities. However, see the
exceptions described in the Operation section.

The Command Interpreter (CI) process for all jobs
and sessions has a process type of 2. Any process
that is an immediate child of a CI process has a
process type of one. Processes which are
descendants of processes with process type 1 or 0,
have a process type of 0.

If a user specifies the SYSTEM option, and the
process is not a system process (process type < 4),
the SYSTEM option is silently ignored.

OPERATION

     The ABORTPROC command attempts to abort the specified process(es)
and all of their children processes. MPE/iX currently does not
support a means for children processes to survive the death of
the parent process. If one or more child processes cannot be
aborted, their parent process cannot be terminated either.

There are specific circumstances where a user process is not
abortable. Examples discussed below involve "critical" processes,
session processes in break mode and certain network server
processes.

The MPE/iX Operating System uses a mechanism known as SETCRITICAL
to prevent a process from being aborted. The SETCRITICAL method is
used to protect the integrity of system data structures. A
process that is SETCRITICAL cannot be aborted. It is normal for
all processes to periodically be SETCRITICAL (e.g., when executing
system code), and they will RESETCRITICAL when it is safe for them
to be aborted. The ABORTPROC command works in conjunction with the
SETCRITICAL mechanism and is designed so that it will never abort
a process which is SETCRITICAL. If a process is critical,
ABORTPROC will notify the process that it should abort as soon as
it is possible to terminate safely.

If the target process, or any of its children processes, are in
break mode they cannot be aborted, and an error is reported. This
is due to the MPE implementation of break, and because all
processes in the same session process tree share the same terminal
LDEV. An exception to this exception is when the target process is
the usermain process, typically the CI. In this case it is
abortable by ABORTPROC, even when it is in break mode.

If the target process is a direct child of JSMAIN and is a user
process type (0 or 1) it also cannot be aborted. The problem here
is that these processes are typically networking server processes
that are associated to a peer CI (usermain) process. If they are
killed the associated CI is not notified and the CI and its
children processes are not terminated. An example of these kinds
of processes are the NS/VT servers.

The above three cases (critical, break, network server) are
anticipated situations where ABORTPROC displays a CI error message
and does not try to kill the process. In all other cases ABORTPROC
attempts to abort the target process, and if the abort fails the
process the target process is marked as having an "abort pending".
Processes with aborts pending are terminated when the condition
that prevented the successful abort is resolved. When ABORTPROC is
used on a process that is already marked as dying, a CI warning is
reported.

System supervisor (OP) or System Manager (SM) capability is
required to execute the ABORTPROC command. SM capability is
necessary to abort detached system processes.

The ABORTPROC command may be issued from a session, job, program,
or in BREAK. Pressing [Break] aborts the execution of this
command.

EXAMPLE(S)

     To abort process 133 and its current descendants, enter:

ABORTPROC #P133 or
ABORTPROC 133

To abort processes 122, 133 and 175, enter:

ABORTPROC (122, 133, 175)

NOTE: To specify a list of processes, enclose the list in
parenthesis and separate the pinspecs with commas.

To abort process 85 (assuming PIN 85 is a detached system process),
enter:

ABORTPROC 85;SYSTEM

NOTE: SM capability is required to abort system processes.

ADDITIONAL INFORMATION

Commands:   ABORTJOB, ALTPROC, BREAKJOB, RESUME, SHOWPROC

Manuals :   MPE/iX Intrinsics Reference Manual (32650-90028)