4c3cc5c1252a5461055b6d72b4f8fb5233a317a7
[openafs.git] / doc / man-pages / pod8 / bos_create.pod
1 =head1 NAME
2
3 bos_create - Defines a new process in the BosConfig file and starts it
4
5 =head1 SYNOPSIS
6
7 =for html
8 <div class="synopsis">
9
10 B<bos create> S<<< B<-server> <I<machine name>> >>>
11     S<<< B<-instance> <I<server process name>> >>> S<<< B<-type> <I<server type>> >>>
12     S<<< B<-cmd> <I<command lines>>+ >>> S<<< [B<-notifier> <I<notifier program>>] >>>
13     S<<< [B<-cell> <I<cell name>>] >>> [B<-noauth>] [B<-localauth>] [B<-help>]
14
15 B<bos c> S<<< B<-s> <I<machine name>> >>> S<<< B<-i> <I<server process name>> >>>
16     S<<< B<-t> <I<server type>> >>> S<<< B<-cm> <I<command lines>>+ >>>
17     S<<< [B<-not> <I<notifier program>>] >>> S<<< [B<-ce> <I<cell name>>] >>> [B<-noa>]
18     [B<-l>] [B<-h>]
19
20 =for html
21 </div>
22
23 =head1 DESCRIPTION
24
25 The B<bos create> command creates a server process entry in the
26 F</usr/afs/local/BosConfig> file on the server machine named by the
27 B<-server> argument, sets the process's status to C<Run> in the
28 F<BosConfig> file and in memory, and starts the process.
29
30 A server process's entry in the F<BosConfig> file defines its name, its
31 type, the command that initializes it, and optionally, the name of a
32 notifier program that runs when the process terminates.
33
34 =head1 OPTIONS
35
36 =over 4
37
38 =item B<-server> <I<machine name>>
39
40 Indicates the server machine on which to define and start the new
41 process. Identify the machine by IP address or its host name (either
42 fully-qualified or abbreviated unambiguously). For details, see L<bos(8)>.
43
44 =item B<-instance> <I<server process name>>
45
46 Names the process to define and start. Any name is acceptable, but for the
47 sake of simplicity it is best to use the last element of the process's
48 binary file pathname, and to use the same name on every server
49 machine. The conventional names, as used in all AFS documentation, are:
50
51 =over 4
52
53 =item buserver
54
55 The Backup Server process.
56
57 =item fs
58
59 The process that combines the File Server, Volume Server, and Salvager
60 processes (B<fileserver>, B<volserver>, and B<salvager>).
61
62 =item kaserver
63
64 The Authentication Server process.
65
66 =item ptserver
67
68 The Protection Server process.
69
70 =item runntp
71
72 The controller process for the Network Time Protocol Daemon.
73
74 =item upclientbin
75
76 The client portion of the Update Server process that retrieves binary
77 files from the F</usr/afs/bin> directory of the binary distribution
78 machine for this machine's CPU/operating system type. (The name of the
79 binary is B<upclient>, but the C<bin> suffix distinguishes this process
80 from C<upclientetc>.)
81
82 =item upclientetc
83
84 The client portion of the Update Server process that retrieves
85 configuration files from the F</usr/afs/etc> directory of the system
86 control machine. (The name of the binary is B<upclient>, but the C<etc>
87 suffix distinguishes this process from C<upclientbin>.)
88
89 =item upserver
90
91 The server portion of the Update Server process.
92
93 =item vlserver
94
95 The Volume Location (VL) Server process.
96
97 =back
98
99 =item B<-type> <I<server type>>
100
101 Specifies the process's type. The acceptable values are:
102
103 =over 4
104
105 =item cron
106
107 Use this value for cron-type processes that the BOS Server starts only at
108 a defined daily or weekly time, rather than whenever it detects that the
109 process has terminated. AFS does not define any such processes by default,
110 but makes this value available for administrator use. Define the time for
111 command execution as part of the B<-cmd> argument to the B<bos create>
112 command.
113
114 =item dafs
115
116 Use this value only for the dafs process, which combines the
117 File Server, Volume Server, Salvageserver, and Salvager processes in
118 order to operate as a Demand Attach File Server.  If one of the
119 component processes terminates, the BOS Server shuts down
120 and restarts the process in the appropriate order.
121
122 =item fs
123
124 Use this value only for the fs process, which combines the File Server,
125 Volume Server and Salvager processes. If one of the component processes
126 terminates, the BOS Server shuts down and restarts the processes in the
127 appropriate order.
128
129 =item simple
130
131 Use this value for all processes listed as acceptable values to the
132 B<-instance> argument, except for the B<fs> process.  There are no
133 interdependencies between simple processes, so the BOS Server can stop and
134 start them independently as necessary.
135
136 =back
137
138 =item B<-cmd> <I<command lines>>+
139
140 Specifies each command the BOS Server runs to start the process.  Specify
141 no more than six commands (which can include the command's options, in
142 which case the entire string is surrounded by double quotes); any
143 additional commands are ignored.
144
145 For a simple process, provide the complete pathname of the process's
146 binary file on the local disk (for example, F</usr/afs/bin/ptserver> for
147 the Protection Server). If including any of the initialization command's
148 options, surround the entire command in double quotes (C<"">). The
149 B<upclient> process has a required argument, and the commands for all
150 other processes take optional arguments.
151
152 For the fs process, provide the complete pathname of the local disk binary
153 file for each of the component processes: B<fileserver>, B<volserver>, and
154 B<salvager>, in that order. The standard binary directory is
155 F</usr/afs/bin>.  If including any of an initialization command's options,
156 surround the entire command in double quotes (C<"">).
157
158 For a cron process, provide two parameters:
159
160 =over 4
161
162 =item *
163
164 The complete local disk pathname of either an executable file or a command
165 from one of the AFS suites (complete with all of the necessary
166 arguments). Surround this parameter with double quotes (C<"">) if it
167 contains spaces.
168
169 =item *
170
171 A specification of when the BOS Server executes the file or command
172 indicated by the first parameter. There are three acceptable values:
173
174 =over 4
175
176 =item *
177
178 The string C<now>, which directs the BOS Server to execute the file or
179 command immediately and only once. It is usually simpler to issue the
180 command directly or issue the B<bos exec> command.
181
182 =item *
183
184 A time of day. The BOS Server executes the file or command daily at the
185 indicated time. Separate the hours and minutes with a colon (I<hh:MM>),
186 and use either 24-hour format, or a value in the range from C<1:00>
187 through C<12:59> with the addition of C<am> or C<pm>. For example, both
188 C<14:30> and C<"2:30 pm"> indicate 2:30 in the afternoon. Surround this
189 parameter with double quotes (C<"">) if it contains a space.
190
191 =item *
192
193 A day of the week and time of day, separated by a space and surrounded
194 with double quotes (C<"">). The BOS Server executes the file or command
195 weekly at the indicated day and time. For the day, provide either the
196 whole name or the first three letters, all in lowercase letters (C<sunday>
197 or C<sun>, C<thursday> or C<thu>, and so on). For the time, use the same
198 format as when specifying the time alone.
199
200 =back
201
202 =back
203
204 =item B<-notifier> <I<notifier program>>
205
206 Specifies the complete pathname on the local disk of a program that the
207 BOS Server invokes when the process terminates. The AFS distribution does
208 not include any notifier programs, but this argument is available for
209 administrator use. See L<NOTES>.
210
211 =item B<-cell> <I<cell name>>
212
213 Names the cell in which to run the command. Do not combine this argument
214 with the B<-localauth> flag. For more details, see L<bos(8)>.
215
216 =item B<-noauth>
217
218 Assigns the unprivileged identity C<anonymous> to the issuer. Do not
219 combine this flag with the B<-localauth> flag. For more details, see
220 L<bos(8)>.
221
222 =item B<-localauth>
223
224 Constructs a server ticket using a key from the local
225 F</usr/afs/etc/KeyFile> file. The B<bos> command interpreter presents the
226 ticket to the BOS Server during mutual authentication. Do not combine this
227 flag with the B<-cell> or B<-noauth> options. For more details, see
228 L<bos(8)>.
229
230 =item B<-help>
231
232 Prints the online help for this command. All other valid options are
233 ignored.
234
235 =back
236
237 =head1 EXAMPLES
238
239 The following command defines and starts the simple process
240 C<kaserver> on the machine C<fs3.abc.com>:
241
242    % bos create -server fs3.abc.com -instance kaserver -type simple \
243                 -cmd /usr/afs/bin/kaserver
244
245 The following command defines and starts the simple process C<upclientbin>
246 on the machine C<fs4.abc.com>. It references C<fs1.abc.com> as the source
247 for updates to binary files, checking for changes to the F</usr/afs/bin>
248 directory every 120 seconds.
249
250    % bos create -server fs4.abc.com -instance upclientbin -type simple \
251                 -cmd "/usr/afs/bin/upclient fs1.abc.com -clear -t 120 \
252                 /usr/afs/bin"
253
254 The following command creates the fs process fs on the machine
255 C<fs4.abc.com>. Type the command on a single line.
256
257    % bos create -server fs4.abc.com -instance fs -type fs \
258                 -cmd /usr/afs/bin/fileserver /usr/afs/bin/volserver \
259                 /usr/afs/bin/salvager
260
261 The following command creates a cron process called C<userbackup> on the
262 machine C<fs5.abc.com>, so that the BOS Server issues the indicated B<vos
263 backupsys> command each day at 3:00 a.m. (the command creates a backup
264 version of every volume in the file system whose name begins with
265 C<user>). Note that the issuer provides the complete pathname to the
266 B<vos> command, includes the B<-localauth> flag on it, and types the
267 entire B<bos create> command on one line.
268
269    % bos create -server fs5.abc.com -instance userbackup -type cron  \
270        -cmd "/usr/afs/bin/vos backupsys -prefix user -localauth" 03:00
271
272 =head1 PRIVILEGE REQUIRED
273
274 The issuer must be listed in the F</usr/afs/etc/UserList> file on the
275 machine named by the B<-server> argument, or must be logged onto a server
276 machine as the local superuser C<root> if the B<-localauth> flag is
277 included.
278
279 =head1 NOTES
280
281 If the B<-notifier> argument is included when this command is used to
282 define and start a process, the BOS Server invokes the indicated
283 I<notifier program> when the process exits. The intended use of a notifier
284 program is to inform administrators when a process exits unexpectedly, but
285 it can be used to perform any appropriate actions.  The following
286 paragraphs describe the bnode and bnode_proc structures in which the
287 BOS Server records information about the exiting process.
288
289 The BOS Server constructs and sends on the standard output stream one
290 bnode and one bnode_proc structure for each exiting process associated
291 with the notifier program. It brackets each structure with appropriate
292 C<BEGIN> and C<END> statements (C<BEGIN bnode> and C<END bnode>, C<BEGIN
293 bnode_proc> and C<END bnode_proc>), which immediately follow the preceding
294 newline character with no intervening spaces or other characters. If the
295 notifier program does not need information from a structure, it can scan
296 ahead in the input stream for the C<END> statement.
297
298 In general, each field in a structure is a string of ASCII text terminated
299 by the newline character. The format of the information within a structure
300 possibly varies slightly depending on the type of process associated with
301 the notifier program.
302
303 The C code for the bnode and bnode_proc structures follows. Note that the
304 structures sent by the BOS Server do not necessarily include all of the
305 fields described here, because some are used only for internal record
306 keeping. The notifier process must robustly handle the absence of expected
307 fields, as well as the presence of unexpected fields, on the standard
308 input stream.
309
310 For proper performance, the notifier program must continue processing the
311 input stream until it detects the end-of-file (EOF). The BOS Server closes
312 the standard input file descriptor to the notifier process when it has
313 completed delivery of the data, and it is the responsibility of the
314 notifier process to terminate properly.
315
316 struct bnode contents:
317
318    struct bnode {
319       struct bnode *next;      /* next pointer in top-level's list */
320       char *name;              /* instance name */
321       long nextTimeout;        /* next time this guy should be awakened */
322       long period;             /* period between calls */
323       long rsTime;             /* time we started counting restarts */
324       long rsCount;            /* count of restarts since rsTime */
325       struct bnode_type *type; /* type object */
326       struct bnode_ops *ops;   /* functions implementing bnode class */
327       long procStartTime;      /* last time a process was started */
328       long procStarts;         /* number of process starts */
329       long lastAnyExit;        /* last time a process exited for any reason */
330       long lastErrorExit;      /* last time a process exited unexpectedly */
331       long errorCode;          /* last exit return code */
332       long errorSignal;        /* last proc terminating signal */
333       char *lastErrorName;     /* name of proc that failed last */
334       short refCount;          /* reference count */
335       short flags;             /* random flags */
336       char goal;               /* 1=running or 0=not running */
337       char fileGoal;           /* same, but to be stored in file */
338 };
339
340 Format of struct bnode explosion:
341
342    printf("name: %s\n",tp->name);
343    printf("rsTime: %ld\n", tp->rsTime);
344    printf("rsCount: %ld\n", tp->rsCount);
345    printf("procStartTime: %ld\n", tp->procStartTime);
346    printf("procStarts: %ld\n", tp->procStarts);
347    printf("lastAnyExit: %ld\n", tp->lastAnyExit);
348    printf("lastErrorExit: %ld\n", tp->lastErrorExit);
349    printf("errorCode: %ld\n", tp->errorCode);
350    printf("errorSignal: %ld\n", tp->errorSignal);
351    printf("lastErrorName: %s\n", tp->lastErrorName);
352    printf("goal: %d\n", tp->goal);
353
354 struct bnode_proc contents:
355
356    struct bnode_proc {
357       struct bnode_proc *next; /* next guy in top-level's list */
358       struct bnode *bnode;     /* bnode creating this process */
359       char *comLine;           /* command line used to start this process */
360       char *coreName;          /* optional core file component name */
361       long pid;                /* pid if created */
362       long lastExit;           /* last termination code */
363       long lastSignal;         /* last signal that killed this guy */
364       long flags;              /* flags giving process state */
365 };
366
367 Format of struct bnode_proc explosion:
368
369    printf("comLine: %s\n", tp->comLine);
370    printf("coreName: %s\n", tp->coreName);
371    printf("pid: %ld\n", tp->pid);
372    printf("lastExit: %ld\n", tp->lastExit);
373    printf("lastSignal: %ld\n", tp->lastSignal);
374
375 =head1 SEE ALSO
376
377 L<BosConfig(5)>,
378 L<KeyFile(5)>,
379 L<UserList(5)>,
380 L<bos(8)>,
381 L<buserver(8)>,
382 L<fileserver(8)>,
383 L<kaserver(8)>,
384 L<ptserver(8)>,
385 L<salvager(8)>,
386 L<upclient(8)>,
387 L<upserver(8)>,
388 L<vlserver(8)>,
389 L<volserver(8)>,
390 L<vos_backupsys(1)>
391
392 =head1 COPYRIGHT
393
394 IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
395
396 This documentation is covered by the IBM Public License Version 1.0.  It was
397 converted from HTML to POD by software written by Chas Williams and Russ
398 Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.