Content-type: text/html Manpage of PSRP

PSRP

Section: PUPS service commands (1)
Updated: 14th January 2005
Index Return to Main Contents
 

NAME


psrp  PSRP process interrogation client  

SYNOPSIS

psrp [ -nice cardinal ][ -growth_protection ][ -argf argument_file ][ -help ][ -usage ][ -version ][ -slots ][ -slotinfo ][ -startmsg ][ -sname PSRP server process name ]i[ -spid PSRP server process pid [ -max_trys trys ]][ -on host name ][ -wait ][ -nowait ][ -channel channel name ][ -c PSRP command string ][ -log ][ -remote hostname client client-pid ][ -password ][ authentication token ][ -username user-name ][ -slaved ][ -noprompt ][ -clist clist file name ] < <stdin> > <stdout> >& <log file>

 

DESCRIPTION

psrp is a client which permits the user to connect to an active process and to interrogate it. In addition, if the target server process permits, the psrp client can also be used to interactively load dynamic library modules, databags and start new threads of execution within the server process.

   

OPTIONS


  -help invokes the on-line context help system. This "man" page is displayed. The process then exits.

-growth_protection <retrys> causes the system to retry an sbrk(3) call up to retrys times. This option permits the program to wait until the core that it requires is available rather than simply exiting if sbrk(3) fails.

-usage displays shortform usage string.

-version displays program version number.

-slots displays short form pups(7) library dependencies.

-slotinfo displays long form pups(7) library dependencies.

-argf argument_file tells the filter to take its command line arguments from the specified argument_file. The data format of the argument file is:

# ... optional comment line ...
-argflag [1]
argument_parameter [1,1]
argument_parameter [1,2]

argument_parameter [1,n]

# ... optional comment line ...
-argflag [2]
argument_parameter [1,1]
argument_parameter [1,2]

argument_parameter [1,n]

  -nice cardinal determimes the niceness at which the filter is scheduled. In keeping with all UNIX user processes, nice must be a cardinal between 0 and 20. The default niceness for psrp(1) is 4.

-startmsg prints out version information on startup

-spid pid specifies the pid of the target PSRP server process.

-sname name specifies the name of the target PSRP server process. The corresponding pid is resolved automatically by psrp(1).

-max_trys trys tells the PSRP how many times to try to connect to the server process. Defaults to 3 tries with 1 second delay between each.

-on host name tells psrp(1) the name of the host it is to execute on

-wait tells psrp(1) to wait for specified PSRP server to start running and then conenct to it.

-nowait tells psrp(1) to abort connection attempt if specified server is not running.

-channel channel name tells psrp(1) to attempt to conenct the nominated server process via the named channel. By default psrp(1) will try to conenct to the nominated servers primary channel.

-c PSRP command string send the requested PSRP comamnd string to the PSRP dispatch handler on the server process which takes appropriate action.

-log tells psrp(1) to log transactions with server process.

-remote tells this invocation of psrp(1) that it is a remote client (started by either the psrp(1) -on option, or interactively from a running local psrp(1) process using an appropriate inbuilt command such as connect
hostname is the name of the basal host from which the remote PSRP client is being run.

client is the name of the client on that host.

client-pid is the PID of the client on the remote host.

-on hostname tells psrp(1) to invoke a remote instance of psrp(1) on the remote host hostname. The remote psrp(1) client is invoked by ssh(1) which ensures that it has an encrypted full terminal connection to the client machine.

-password authentication-token is used to set the token which psrp(1) uses to authenticate connections to remote hosts.

-user enables psrp(1) to changed to another user user-name. The user is prompted for the associated password using the getpass(3) function. While the semantics of the operation differ, the effects of doing this are broadly similar to su(1).

The owner of the current session is prompted for a new username/password. If authentication succeeds subsequent psrp(1) will be performed under the uid of the new user. This option is used to enable a user to connect to PSRP server processes which they don't own. Typically, access to processes which a user do not own are effected by pseudo-identifiers. For example user mao would typically have a psuedo identifier psrpmao. which allows limited access to mao's account (e.g. to connect to PSRP server applications owned by mao). Typically, a pseudo identifier would not allow other uses direct access to files, or the capability to run a shell.

slaved tells psrp(1) that it being used by a PSRP server process which wishes to make peer-to-peer PSRP connections with other PSRP servers. In this mode PSRP protocol status is sent to stdout. This is used by the PSRP server which is slaving psrp(1) to determine the status of its peer-to-peer connection.

-noprompt tells psrp(1) to turn prompt off (used mainly when operating in slaved, remote or non-interactive modes of operation).

-clist tells psrp to read the specified clist file. This contains a list of commands which may be executed by shells slaved by this instace of the psrp(1) client. This feature permits psrp(1) clients to be called from web service and similar interfaces where security is paramount.

 

BUILTIN INTERACTIVE COMMANDS

if <cond> <cmd> : execute command <cmd> if condition <cond> is TRUE.


 %<label>: target label for resume command.

resume %<label>: resume macro execution at label %<label>.

errorabort on|off: PML script aborted if "on" and error code for last command != "ok"

exit: exit macro that is currently executing.

abort: abort current PML script.

atomic <cmd>: do not attempt to expand <cmd> as macro.

body <cmd>: show body (if <cmd> is a macro).

repeat <cnt> <command>: repeat command (which can be a macro) <cnt> times.

rperiod <seconds>: set repeat command repeat interval (in seconds).

repeat <command>: repeat command infinitely.

raise <cond>: raise condition <cond> (pups_mainly used for testing PML scripts)

clean channel directory clean dead PSRP channels from channel directory.

cinit: enter curses mode. This is mainly used prior to executing commands or macros which require curses(3) style screen access.

cend: exit curses mode (returns to normal "glass tty" screen).

segaction [<action>]: specify/display request the action which is to be taken when a server segments (e.g. saves its state and then executes a child which inherits that state). In modern PUPS/PSRP applications segmentation has been rendered obsolete as PUPS now has its own memory efficient memory allocation package based on the memory allocator shipped with The Tennessee Checkpointing Libraries.

thandler [<handler>]: Specify/display thread handler.

cls: clear screen (this is usually called just after a cinit command to prepare the screen for curses(3) I/O.

sleep <secs>: Delay PML script execution for <secs> seconds.

retry <on | off>: enable "on" or disable "off" automatic request repetition (if server busy).

wait Make PSRP client wait for server to start (and then connect to it).

nowait Make PSRP client abort connection attempt (if target server is not running).

exit Terminate (if attached PSRP server terminates).

linktype: show type of PSRP channel linkage.

linktype <hard | soft>: set type of PSRP channel link to "hard or "soft". If the PSRP client is soft linked to the PSRP server it will abort its connection if the server is stopped. A PSRP client which is hard linked to a PSRP will stay connected to the server even if the server stops. This option has two uses (a) in the debugging of PUP/PSRP based virtual dataflow machines and (b) in peer-to-peer PSRP connections between servers (mediated by slaved interaction clients SIC's).

version: display version of this PSRP interaction client

id: print owner, uid, gid and controlling tty for this [psrp] process.

chanstat <directory>: show active PSRP channels in <directory>. If directory is ommitted, the default PSRP channel directory, /tmp is assumed.

killall <directory> <spec>: Kill all PSRP servers in <directory> matching <spec>

dllstat <DLL pathname>: show orifices (pointers to exportable objects) associated with DLL <DLL name>.

quit | exit | bye: terminates] psrp client

trys <N trys>: set number of attempts to open PSRP server to <N trys>.

ssh <ruser> [[un]compress]: use [[un]compressed] secure shell protocols to connect to remote psrp server running on remote hosts (as <ruser>).

connect [<user>@]<host>: connect to remote PSRP client on <host> as UID <user>.

lcwd <path>: set current (local) working directory for PSRP client.

open <PSRP server>[@<host>]: open connection to PSRP server process <PSRP server> [on <host>]. If host is not specified, it is assumed that the required server is running on the local host. The PSRP server may be specified by name or PID.

close: close connection to PSRP server process.

chelp: display help on builtin commands for client.

quiet: do not display output from builtin PSRP client commands

squiet: do not display output from PSRP server dispatch functions.

noisy: display output from builtin PSRP client commands

snoisy: display output from builtin PSRP server dispatch functions.

perror: print error handler status.

segcnt: display number of segments (for segmented server).

medit: update PML (PSRP macro) definition file, <file>.

mload <file>: load macro file (overwriting currently loaded list of macros).

mappend <file>: append macro file to currently loaded list of macros.

mpurge all|<file>: delete all PML macros or those in <file>.

macros: show tags for all loaded PML macros.

user <username>: change session owner to <username>.

password: set remote PSRP services authentication token. If this token is set it will be used for authentication when connecting to PSRP servers running on remote hosts.

diapause: generate restartable PSRP server ckpt file and exit (via extended Tennessee Checkpointing Library or UCLiK Kernel checkpointing).

secure: set server side PSRP services authentication token. This permits individual PSRP server processes to be password protected. This fetaure is useful when the server is operating in a public encironment (e.g. within the conetext of web services for example).

clist <clist file>: read list of commands which can be executed by slaved shells. This option permits commands which may be executed from psrp(1) to be restricted (e.g. within the context of web services).

diapause: generate restartable PSRP server ckpt file and exit

checkpoint: generate restartable PSRP server checkpoint file (via extended Tennessee Checkpointing Library or UCLiK Kernel checkpointing).

!<command>: send command to users default shell.

relay <slave process>: relay data to/from slave process via psuedotty.

<srv>: <req>: send request (server builtin or dispatch function) <req> to PSRP server <srv>.

<srv>@<host>: <req>: send request (server builtin or dispatch function)<req> to PSRP server <srv> running on node <host>. If <host>=? search local cluster for host running PSRP server <srv> and then send command if it is uniquely located.

c1; c2; c3: process multiple requests

c a1 a2: glob argument "a1 a2" to a1a2

 

FILES

psrp(1) will read commands from the .psrprc file in the home directory of the user executing psrp(1) (if it exists), prior to accepting commands from the terminal. In slaved mode, thia file is read prior to accepting comamnd input from the enslaving PSRP server process.

/etc/passwd is used for the purposes of authentication.

 

LIBRARIES

psrp(1) uses the PUPS libraries, see pups(7)

 

BUGS

Using shells interactively from psrp(1) under certain flavours of UNIX (notably those which are SVR4 based) can cause the client to crash.

 

COPYRIGHT

(C) Digital Vision.

 

PROGRAMMER

M.A. O'Neill.

 

SEE ALSO

getpass(3), pups(7), curses(3)


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUILTIN INTERACTIVE COMMANDS
FILES
LIBRARIES
BUGS
COPYRIGHT
PROGRAMMER
SEE ALSO

This document was created by man2html using the manual pages.
Time: 17:01:37 GMT, February 08, 2005