killkp - Killing KPs

Introduction

The killkp utility is a command line tool to kill Knowbot
Programs. It is rarely needed, but may be useful to kill runaway KPs
when their reporting station is inaccessible.

Usage

The general form of the killkp command line is

killkp [-kkernel ] [-ppassword ]
[-ssignal ] kpid ...

Options

-kkernel

The kernel to which the KillKP() request is sent.
(Default: your hostname, with the domain name stripped off.)

-ppassword

A password. Currently not needed.

-ssignal

The UNIX signal with which the KP will be "killed".
Default 14 (SIGTERM). (For experts only.)

kpid

One or more KP identifiers. The KP identifier for a given KP is
printed by submit in verbose mode; it is
also displayed by rs. If you are not using rs and
you did not run submit in verbose mode, you can still get the KP id,
albeit in a roundabout way. You first need to find the reporting
id for the KP you want to kill. You can do this by listing the
"kps" context of the kernel where the KP is running. (reporting
identifiers can be arbitrary unique strings, but usually have the form
digits-name.number, where digits is the
UNIX process ID of the submit or rs tool that launched the KP,
name is derived from the launched file name, and number
is a serial number). Once you've found the reporting id, use the
kpps tool to list status
information about the KOS running the KP you want to kill. Look the
reporting id up under the NAME field, and look across to the
KPID field. This is the number you use for this argument.

Description

The KPs designated by the given KP identifiers are sent the given
UNIX signal, presuming they are executing at designated
kernel, and all permission checks clear.

What happens when a KP receives a UNIX signal depends
on the signal (see the UNIX manual), but usually the KP
is terminated without further ado. Neither the KP nor its supervisor gets
a chance to clean up; the kernel does perform limited reporting and
cleanup of the resources held by the KP.

Caveats

This tool and the Administrator.KillKP() interface are
provisional, until a better interface for forced termination of KPs is
devised.