EXORCISE(1) USER COMMANDS EXORCISE(1)
PENIX OPERATING SYSTEM DOCUMENTATION PENIX
NAME
exorcise - remove unwanted background tasks
SYNOPSIS
exorcise [ - ] acdegilmnorsmCMRZ
DESCRIPTION
Exorcise is a more thorough and powerful version of kill; it
will automatically generate a list of all processes running and
terminate them. It also closes their files, disconnects any
network links they may have open and, if the process is
connected to a terminal, it will display a friendly message to
say that the process is about to be terminated. This process is
a Caenobite; once finished, it removes itself (sometimes) and
thus is the only example of a Caenobite task being capable of
being removed from the system.
FUNCTIONS
a All. Remove ALL processes, whether they be daemons,
goelems, maenads, dummies, ydyots, bananas, vegetables, or
even caenobites. This option will terminate the process
which is calling it, and even the process doing the
termination, so use it cautiously.
c Caenobites. Will attempt to distract any currently-running
caenobite processes by creating a BOX process and sending
it a BOX_OPEN packet. This will cause the BOX to open a
temporary file in /usr/leviathan/labyrinth, attracting the
attention of any caenobite processes on the system. Since
there isn't any actual way of terminating a caenobite
process, keeping them busy is the best we can do.
d Terminate daemons only.
e Enema option. Once the killed process has been deleted,
the disk-space allocated to its process control block is
flushed, filled with hexadecimal FFs and then emptied down
/dev/ttybowl.
g Terminate goelem processes only.
i Insipid option. This is a kind of filter that will only
terminate weak processes, the ones that don't really
deserve to survive or won't affect the system's performance
significantly. Very Darwinian, really. Handy for
terminating finished Goelems and lost sprites.
l Lost processes. This checks the addresses of each task
against their Loc_IDs in their Process Control Blocks. If
they differ significantly, the process is considered to be
lost and is terminated, excepting, of course, Caenobite
tasks, which generally do what they like.
m Terminate maenad processes only.
n Notify. Sends a `oops' packet to the task before killing
it.
o Terminate Ogre processes only.
r Rooted exclusion option. This will terminate any processes
not associated with the rooted(c) console.
s Terminate sprite processes only.
v Verbose option. Will send regular messages to the console,
reporting progress in removing tasks, up to the point that
the task removes itself.
C Clever option. Attempts to find illegaly-hidden processes
by going through the entire system disk, looking for
anything that might be a hidden process control block but
isn't in the task-table. The exorcise caenobite then
cleverly replaces the PCB with a replica, the only
difference being that the task_timeout field is set to 1
second, thus terminating the task almost immediately; if a
SerIOus line is attached to the task, a message is sent
down it, saying `Think you're pretty smart, don't you?
nyah!'
M Microcephalic option. Will remove any tasks whose process
control block is less than 2K in length.
N Terminate Nyemph processes only.
R Really Smart option. Will attempt to terminate specified
tasks by creating 1024 localised LNC (Logical Nipple Clip)
worm-processes. These mini-processes, ordinarily used for
kick-starting lost Spank_IO blocks between network
machines, will run through all available filesystems and
all active, allocated and unallocated memory, searching for
ANYTHING that even looks like it might even want to pretend
to be executeable code. The LNC reports the address of the
code to the Pinhead Caenobite process, who then proceeds to
write Zeroes over the specified address, within a range of
64K on either side of it, just to be sure. This is
generally regarded as a kind of Mutually-Assured-
Destruction sort of option, not to be used while showing
off to your girl- or boy-friend.
Z Zorch option. This doesn't actually terminate the
specified process, but instead insults it by passing it
message packets of a dubious nature.
EXAMPLES
to exorcise background processes:
exorcise -degnC
This will terminate any existing daemons, goelems and nyemphs,
flushing their PCBs down the ttybowl and will then conduct a
`Clever' search for illegal PCBs.
FILES
/uselss/der/zorcho Contains insult packets for use in
the Zorch option.
/uselss/der/greeting_card Contains a selection of `oops'
packets which can be sent to dying
processes as a form of consolation.
/typical/who's_where Table which relates active processes
to serIOus lines. referred to when
trying to identify legal processes.
/usr/leviathan/labyrinth This is where the caenobite processes
hang out, and is considered off-
limits to everyone, sysadmins
included. Any process who wanders
into here will be very sorry indeed.
SEE ALSO
bollx(1), crp(2), flrump(3), argle_bargle(3), ni(1), woof(5),
bwip_init(2), kill(3), mangle(2), assassinate(6), garrote(2),
castrate(2), kick_them_in_the_balls(1), tickle(4), knacker(1)
BUGS
Exorcise cannot touch LNC worms, as these tasks are actually
managed by the co-processors that operate the SerIOus lines and
have very little to do with the CPUs that run the rest of the
system.
The BOX process created with the c option is, in fact, a
caenobite process, which has the undesirable effect of
increasing the number of caenobite tasks by two, when the
general idea is to reduce them.
The n option can be slower than a wet week of sundays, and
generally is.
If the e (enema) and C (clever) options are specified together,
the result is invariably similar to that of formatting the
system disk. We've never been game enough to specify e, C and R
all at the same time. If anyone out there has tried it, we'd be
grateful if you could send us mail to tell us what happened.
There is still no way to follow symbolic links. Selectively,
that is. We are working on it, though.
Really. You do believe us, don't you?
-----
Sunburne Computer, Inc. 25 March 1992
|