P E N I X
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