|
|
1.1 root 1: .th PROCTAB FILES
2: .sh NAME
3: \&.../files/proctab7 \- \*(II runtime configuration information
4: .sh DESCRIPTION
5: The process table
6: describes the runtime configuration
7: of the \*(II system.
8: Each line of the process table
9: has a special meaning depending on the first
10: character of the line.
11: Blank lines
12: and lines beginning with an asterisk
13: are comments.
14: All other lines have a sequence of fields
15: separated by commas.
16: Pipe descriptor fields
17: are lower case letters
18: or digits;
19: if they are digits
20: they are replaced by file descriptors
21: from the \*(EE flag
22: or the @ flag.
23: .s3
24: .bd D
25: defines a macro.
26: The first field is a single character
27: macro name.
28: The second field is the string to use as the value.
29: Macros are expanded using ``$\fIx\fP''
30: where
31: .it x
32: is the macro name.
33: The macro ``P'' is predefined
34: to be the pathname of the \*(II subtree.
35: .s3
36: .bd P
37: introduces a process description.
38: All lines up to an end of file
39: or another P line
40: describe a single process.
41: The first field is the process number.
42: The next field is the pathname of the binary
43: to execute for this process.
44: The third field is the name of the process
45: to use for printing messages.
46: The fourth field must be a single character
47: lower case letter
48: representing the input pipe that is normally read
49: when nothing special is happening,
50: or a vertical bar followed by a single digit,
51: meaning to read from that file descriptor.
52: The next field is a set of flags in octal
53: regarding processing of this process;
54: these are described below.
55: The final field is a single letter
56: telling what trace flag this process uses.
57: .s3
58: .bd L
59: defines what modules are defined locally
60: by this process.
61: The first field is the module number
62: used internally.
63: The second field is a set of flags
64: describing processing of this module:
65: the only bit defined is the 0001 bit
66: which allows this module to be executed
67: directly by the user.
68: The third field is the function number
69: in the process which defines this module.
70: The final field is the module number
71: to be executed after this module completes;
72: zero is nothing (return).
73: .s3
74: .bd R
75: defines modules that are known to this process
76: but which must be passed to another process
77: for execution.
78: The first field is the process number the modules
79: will be found in.
80: The second field is the pipe to write
81: to get to that process.
82: The third field is the pipe to read to get a response
83: from that process.
84: The fourth field is a set of flags:
85: 0001 means to write the output pipe
86: if you get a broadcast message,
87: 0002 means that the process is physically adjacent
88: on the read pipe,
89: and 0004 means that the process is adjacent
90: on the write pipe.
91: The fifth and subsequent fields are the module numbers
92: that are defined by this process.
93: .s3
94: The status bits for the
95: .bd P
96: line are as follows:
97: .nf
98: .s3
99: 000010 close diagnostic output
100: 000004 close standard input
101: 000002 run in user's directory, not database
102: 000001 run as the user, not as \*(II
103: .s3
104: .fi
105: .s3
106: The lowest numbered process
107: becomes the parent
108: of all the other processes.
109: .s1
110: .bd WARNING:
111: Giving a user permission to specify his or her own process table
112: will allow them to bypass all protection provided by \*(II.
113: This facility should be provided for system debugging only!
114: .sh "EXAMPLE"
115: The following example
116: will execute a three process system.
117: .s3
118: .nf
119: .in +4
120: DB:$P/bin
121: DS:$P/source
122: **** Process 0 -- terminal monitor
123: P0:$B/monitor:MONITOR:h:0003:M
124: L0:0:0:0
125: R1:0:a:h:0007:1
126: * Process 1 -- parser
127: P1:$B/parser:PARSER:a:0014:P
128: L3:1:0:0
129: R0:0:h:a:0006:0
130: R2:0:b:g:0007:5:6:7
131: * Process 2 -- data base utilities
132: P2:$B/alldbu:DBU:b:0014:Z
133: L5:0:6:0
134: L6:0:0:0
135: L7:0:1:0
136: R0:0:g:b:0000
137: R1:0:g:b:0006
138: .fi
139: .in -4
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.