MPE/iX Commands Reference Manual (32650-90877)

Chapter 3 37
Command List I
Commands ABORT to BYE
0 User Y SM or OP capability.
1 Son Y SM or OP capability.
2 Usermain Y SM or OP capability.
3 reserved n/a n/a
4 System N Not Abortable!
5 Detached Y Must specify ;SYSTEM.
SM capability is required.
6 JSMAIN N Not Abortable!
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.
The Command Interpreter (CI) process for all jobs and
sessions has a process type of two. 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 Notes
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 their parent process. If one or more child processes cannot be aborted,
their parent process cannot be terminated either.There are specific circumstance where a
process is not abortable. Examples discussed below involve "critical" processes and session
processes in break mode.
The MPE/iX Operating System uses a mechanism known as SETCRITICAL to prevent a
process from being aborted. The SETCRICIAL 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 SETCRICIAL (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. It is designed so that
it will never abort a process which is SETCRICIAL. 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. The
target process needs to be resumed before it can be aborted by the ABORTPROC
command. The one 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.
When ABORTPROC fails to fully terminate 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