3 bos create - Defines a new process in the BosConfig file and starts it
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>]
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>]
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.
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.
38 =item B<-server> <I<machine name>>
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)>.
44 =item B<-instance> <I<server process name>>
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:
55 The Backup Server process.
59 The process that combines the File Server, Volume Server, and Salvager
60 processes (B<fileserver>, B<volserver>, and B<salvager>).
64 The Authentication Server process.
68 The Protection Server process.
72 The controller process for the Network Time Protocol Daemon.
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
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>.)
91 The server portion of the Update Server process.
95 The Volume Location (VL) Server process.
99 =item B<-type> <I<server type>>
101 Specifies the process's type. The acceptable values are:
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>
116 Use this value only for the fs process, which combines the File Server,
117 Volume Server and Salvager processes. If one of the component processes
118 terminates, the BOS Server shuts down and restarts the processes in the
123 Use this value for all processes listed as acceptable values to the
124 B<-instance> argument, except for the B<fs> process. There are no
125 interdependencies between simple processes, so the BOS Server can stop and
126 start them independently as necessary.
130 =item B<-cmd> <I<command lines>>+
132 Specifies each command the BOS Server runs to start the process. Specify
133 no more than six commands (which can include the command's options, in
134 which case the entire string is surrounded by double quotes); any
135 additional commands are ignored.
137 For a simple process, provide the complete pathname of the process's
138 binary file on the local disk (for example, F</usr/afs/bin/ptserver> for
139 the Protection Server). If including any of the initialization command's
140 options, surround the entire command in double quotes (C<"">). The
141 B<upclient> process has a required argument, and the commands for all
142 other processes take optional arguments.
144 For the fs process, provide the complete pathname of the local disk binary
145 file for each of the component processes: B<fileserver>, B<volserver>, and
146 B<salvager>, in that order. The standard binary directory is
147 F</usr/afs/bin>. If including any of an initialization command's options,
148 surround the entire command in double quotes (C<"">).
150 For a cron process, provide two parameters:
156 The complete local disk pathname of either an executable file or a command
157 from one of the AFS suites (complete with all of the necessary
158 arguments). Surround this parameter with double quotes (C<"">) if it
163 A specification of when the BOS Server executes the file or command
164 indicated by the first parameter. There are three acceptable values:
170 The string C<now>, which directs the BOS Server to execute the file or
171 command immediately and only once. It is usually simpler to issue the
172 command directly or issue the B<bos exec> command.
176 A time of day. The BOS Server executes the file or command daily at the
177 indicated time. Separate the hours and minutes with a colon (I<hh:MM>),
178 and use either 24-hour format, or a value in the range from C<1:00>
179 through C<12:59> with the addition of C<am> or C<pm>. For example, both
180 C<14:30> and C<"2:30 pm"> indicate 2:30 in the afternoon. Surround this
181 parameter with double quotes (C<"">) if it contains a space.
185 A day of the week and time of day, separated by a space and surrounded
186 with double quotes (C<"">). The BOS Server executes the file or command
187 weekly at the indicated day and time. For the day, provide either the
188 whole name or the first three letters, all in lowercase letters (C<sunday>
189 or C<sun>, C<thursday> or C<thu>, and so on). For the time, use the same
190 format as when specifying the time alone.
196 =item B<-notifier> <I<notifier program>>
198 Specifies the complete pathname on the local disk of a program that the
199 BOS Server invokes when the process terminates. The AFS distribution does
200 not include any notifier programs, but this argument is available for
201 administrator use. See L<NOTES>.
203 =item B<-cell> <I<cell name>>
205 Names the cell in which to run the command. Do not combine this argument
206 with the B<-localauth> flag. For more details, see L<bos(8)>.
210 Assigns the unprivileged identity C<anonymous> to the issuer. Do not
211 combine this flag with the B<-localauth> flag. For more details, see
216 Constructs a server ticket using a key from the local
217 F</usr/afs/etc/KeyFile> file. The B<bos> command interpreter presents the
218 ticket to the BOS Server during mutual authentication. Do not combine this
219 flag with the B<-cell> or B<-noauth> options. For more details, see
224 Prints the online help for this command. All other valid options are
231 The following command defines and starts the simple process
232 C<kaserver> on the machine C<fs3.abc.com>:
234 % bos create -server fs3.abc.com -instance kaserver -type simple \
235 -cmd /usr/afs/bin/kaserver
237 The following command defines and starts the simple process C<upclientbin>
238 on the machine C<fs4.abc.com>. It references C<fs1.abc.com> as the source
239 for updates to binary files, checking for changes to the F</usr/afs/bin>
240 directory every 120 seconds.
242 % bos create -server fs4.abc.com -instance upclientbin -type simple \
243 -cmd "/usr/afs/bin/upclient fs1.abc.com -clear -t 120 \
246 The following command creates the fs process fs on the machine
247 C<fs4.abc.com>. Type the command on a single line.
249 % bos create -server fs4.abc.com -instance fs -type fs \
250 -cmd /usr/afs/bin/fileserver /usr/afs/bin/volserver \
251 /usr/afs/bin/salvager
253 The following command creates a cron process called C<userbackup> on the
254 machine C<fs5.abc.com>, so that the BOS Server issues the indicated B<vos
255 backupsys> command each day at 3:00 a.m. (the command creates a backup
256 version of every volume in the file system whose name begins with
257 C<user>). Note that the issuer provides the complete pathname to the
258 B<vos> command, includes the B<-localauth> flag on it, and types the
259 entire B<bos create> command on one line.
261 % bos create -server fs5.abc.com -instance userbackup -type cron \
262 -cmd "/usr/afs/bin/vos backupsys -prefix user -localauth" 03:00
264 =head1 PRIVILEGE REQUIRED
266 The issuer must be listed in the F</usr/afs/etc/UserList> file on the
267 machine named by the B<-server> argument, or must be logged onto a server
268 machine as the local superuser C<root> if the B<-localauth> flag is
273 If the B<-notifier> argument is included when this command is used to
274 define and start a process, the BOS Server invokes the indicated
275 I<notifier program> when the process exits. The intended use of a notifier
276 program is to inform administrators when a process exits unexpectedly, but
277 it can be used to perform any appropriate actions. The following
278 paragraphs describe the bnode and bnode_proc structures in which the
279 BOS Server records information about the exiting process.
281 The BOS Server constructs and sends on the standard output stream one
282 bnode and one bnode_proc structure for each exiting process associated
283 with the notifier program. It brackets each structure with appropriate
284 C<BEGIN> and C<END> statements (C<BEGIN bnode> and C<END bnode>, C<BEGIN
285 bnode_proc> and C<END bnode_proc>), which immediately follow the preceding
286 newline character with no intervening spaces or other characters. If the
287 notifier program does not need information from a structure, it can scan
288 ahead in the input stream for the C<END> statement.
290 In general, each field in a structure is a string of ASCII text terminated
291 by the newline character. The format of the information within a structure
292 possibly varies slightly depending on the type of process associated with
293 the notifier program.
295 The C code for the bnode and bnode_proc structures follows. Note that the
296 structures sent by the BOS Server do not necessarily include all of the
297 fields described here, because some are used only for internal record
298 keeping. The notifier process must robustly handle the absence of expected
299 fields, as well as the presence of unexpected fields, on the standard
302 For proper performance, the notifier program must continue processing the
303 input stream until it detects the end-of-file (EOF). The BOS Server closes
304 the standard input file descriptor to the notifier process when it has
305 completed delivery of the data, and it is the responsibility of the
306 notifier process to terminate properly.
308 struct bnode contents:
311 struct bnode *next; /* next pointer in top-level's list */
312 char *name; /* instance name */
313 long nextTimeout; /* next time this guy should be awakened */
314 long period; /* period between calls */
315 long rsTime; /* time we started counting restarts */
316 long rsCount; /* count of restarts since rsTime */
317 struct bnode_type *type; /* type object */
318 struct bnode_ops *ops; /* functions implementing bnode class */
319 long procStartTime; /* last time a process was started */
320 long procStarts; /* number of process starts */
321 long lastAnyExit; /* last time a process exited for any reason */
322 long lastErrorExit; /* last time a process exited unexpectedly */
323 long errorCode; /* last exit return code */
324 long errorSignal; /* last proc terminating signal */
325 char *lastErrorName; /* name of proc that failed last */
326 short refCount; /* reference count */
327 short flags; /* random flags */
328 char goal; /* 1=running or 0=not running */
329 char fileGoal; /* same, but to be stored in file */
332 Format of struct bnode explosion:
334 printf("name: %s\n",tp->name);
335 printf("rsTime: %ld\n", tp->rsTime);
336 printf("rsCount: %ld\n", tp->rsCount);
337 printf("procStartTime: %ld\n", tp->procStartTime);
338 printf("procStarts: %ld\n", tp->procStarts);
339 printf("lastAnyExit: %ld\n", tp->lastAnyExit);
340 printf("lastErrorExit: %ld\n", tp->lastErrorExit);
341 printf("errorCode: %ld\n", tp->errorCode);
342 printf("errorSignal: %ld\n", tp->errorSignal);
343 printf("lastErrorName: %s\n", tp->lastErrorName);
344 printf("goal: %d\n", tp->goal);
346 struct bnode_proc contents:
349 struct bnode_proc *next; /* next guy in top-level's list */
350 struct bnode *bnode; /* bnode creating this process */
351 char *comLine; /* command line used to start this process */
352 char *coreName; /* optional core file component name */
353 long pid; /* pid if created */
354 long lastExit; /* last termination code */
355 long lastSignal; /* last signal that killed this guy */
356 long flags; /* flags giving process state */
359 Format of struct bnode_proc explosion:
361 printf("comLine: %s\n", tp->comLine);
362 printf("coreName: %s\n", tp->coreName);
363 printf("pid: %ld\n", tp->pid);
364 printf("lastExit: %ld\n", tp->lastExit);
365 printf("lastSignal: %ld\n", tp->lastSignal);
386 IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
388 This documentation is covered by the IBM Public License Version 1.0. It was
389 converted from HTML to POD by software written by Chas Williams and Russ
390 Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.