shp-status command

The shp-status command displays status information about printers shared with UNIX, started by the startshp command.

For Windows: Not supported

Syntax

shp-status {(options}

Parameter(s)

options t{n} Displays trace information. If the n is not specified, all traces are shown, starting with the most recent. If the n is specified, only that number is shown for each printer.

Description

The information below displays:

VMname Name of the D3 virtual machine, which uses the shared printer.
Prt D3 printer number, as specified in the startshp command.
Port D3 port number the printer process was started on.
PID PID of the lppick process associated to the D3 printer process. This process acts as a filter between the D3 printer output, which is a continuous data stream, separated by end-of-job sequences, and the UNIX spooler, which accepts separate jobs.
Spooler command UNIX command used to spool data.
Note: Only the first 32 characters of the command display.
Status Reports the activity or the D3 printer process and the existence of the lppick filter. The possible values are:
ok Both processes are active.
prt ok D3 printer is active and seems in a normal state.
prt err D3 printer is active but appears in a wrong state.
prt dead D3 printer process has been killed.
lp ok lppick process is active.
lp dead lppick process has been killed. For normal operations, the status should be ok. However, if the filter process gets killed, the output of the D3 printer process cannot be sent to UNIX. Issuing the startshp command again should clear the situation and restart the necessary processes.

If the t option is used, the trace information recorded displays, starting with the newest trace entry. This information displays:

trace# Trace number in decimal.
date Date.
time D3 time displays.
description start job Beginning of a job.
end job, size=n (-1,10) End of the job. The n is the size in decimal. The values between parentheses are internal return codes.
write data, size=n Writes n bytes of data to the lp command.
read error, errno=x Encounters a read error on stdin. The x is the decimal value or errno.
write error, errno=x, expsz=n, sz=m Encounters a write error on stdout (to the lp command).
x Decimal value of errno.
n Number of bytes that was attempted to write.
m Actual number of bytes written.
raw read, size=n,’<texte> Raw data reads from stdin (coming from the D3 printer). Nonprintable characters are replaced by a period. The n is the total size. This trace is available only when the trace level 3 is used.
raw write, size=n,’<texte> Raw data writes on stdout (to the lp command). Nonprintable characters are replaced by a period. The n is the total size. This trace is available only when the trace level 3 is used.
CAUTION:
The fact that all the processes involved in sharing the printer are ok does not mean everything is well. There could be a problem in the D3 spooler. For example:
  • Are the form queues assigned properly?

  • Is the device associated to the form queue of the appropriate type, such as lp.unix?

  • Is the D3 job queue full?

  • Is the D3 printer active?

Or, in the UNIX spooler:
  • Is the UNIX command used in the startshp command correct?

  • Is the UNIX spooler daemon active?

  • For remote printers, is the network active?

When used with a level 3 trace, the size of the trace file increases very rapidly. The trace is disabled by stopping the printer with a shp-kill.

Example(s)

shp-status

VMname   Prt   Port   PID   Spooler command        Status
------   ---   ---    ----  --------------------   ---------------
pick0    0     126    1763  ’exec lp -onobanner’   OK
dev      0     32     1765  ’exec cat >> xx’       prt OK lp DEAD
prod     0     44     345   ’exec lp -s’           prt ERR lp OK

The first line indicates that the first shared printer is the printer 0 of the virtual machine pick0, started on the port 126, sending its data to the normal lp command, suppressing the banner. It appears to be ok.

The second line indicates that the second shared printer is the printer 0 of the virtual machine dev, started on the port 32, sending its output to the UNIX file xx (on whatever directory the command startshp was issued on). The D3 printer process is still up, but the lppick filter is dead, possibly because the file xx was write protected, or may be because the UNIX file system is full.

The third line indicates that the second shared printer is the printer 0 of the virtual machine prod, started on the port 44, sending its data to the normal lp command, suppressing lp messages. The D3 printer process is still up, but in an incorrect state, probably because a sp-kill command was issued, which sent the process back to logon, without terminating the UNIX process. The lppick process displays ok. To terminate a shared printer properly, use the TCL command shp-kill.

shp-status (t

VMname   Prt   Port   PID   Spooler command        Status
------   ---   ---    ----  --------------------   ---------------
pick0    0     126    1763  ’exec lp -onobanner’   OK

         tr#   Date..   Time....   Description
         3     03/03    13:14:00   nd job, size=1223
         2     03/03    13:13:55   start job
         1     03/03    13:14:00   start lppick

Displays trace information.