|
|
1.1 root 1: :
2: # MLP script to report the despooler's status in a Unix V manner.
3: #
4: # The following options are not supported:
5: #
6: # -a[list] There is no such thing as a printer's "acceptance" status.
7: # -c[list] Printers are not lumped into classes.
8: #
9:
10: MLPDIR=/usr/spool/mlp
11: All=""
12:
13: for Next in $* # See if they want everything...
14: do
15: case "$Next" in
16: -t) All=" -r -d ";;
17: esac
18: done
19:
20:
21:
22: for Next in $* $All # Process the various arguments...
23: do
24: case "$Next" in
25: -d) # Print the system default destination
26:
27: dest=`awk -F= '/^[ ]*(DEFAULT|default)/ { print $2; next }
28: ' $MLPDIR/controls`
29:
30: echo "system default destination: $dest";;
31:
32:
33: -r) # Print the despooler (scheduler) status
34:
35: sched1=`ps -xfn | awk '{ if ($3 == "despooler") { print $2 }}'`
36:
37: sched2=`awk -F= '/^[ ]*(DESPOOLER|despooler)/ { i = $2;
38: printf "%d", i; next } ' $MLPDIR/status`
39:
40: pid=`expr "$sched2" + 0`
41:
42: if [ "$sched1" = "" ] # despooler's PID will never be -1
43: then
44: sched1=-1
45: fi
46:
47: if test "$pid" -ne "$sched1"
48: then
49: echo "scheduler is not running"
50: else
51: echo "scheduler is running"
52: fi;;
53:
54:
55: -o) # Print the status of each printer
56: awk -F= '/^[ ]*(PRINTER|printer)/ {
57: split($2,ln,","); d = ln[2]
58: dev[d] = ln[1];
59:
60: printf "---> ln[%s] = %s\n", d, dev[d]; next }
61: { lines[$1] = $0 }
62: END {
63: for (n in dev) {
64: printf "%s (%s) ", dev[n], lines[n]
65:
66: if ( lines[n] != "")
67: printf "%s\n", lines[n]
68: else
69: printf "is idle\n"
70: }
71: }' $MLPDIR/controls $MLPDIR/status
72: ;;
73:
74: esac
75: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.