Annotation of researchv10dc/man/man8/asd.8, revision 1.1.1.1

1.1       root        1: .TH ASD 8
                      2: .CT 1 sa_auto
                      3: .SH NAME
                      4: asd \- automatic software distribution
                      5: .SH SYNOPSIS
                      6: .B /usr/lib/asd/cdaemon
                      7: .br
                      8: .B /usr/lib/asd/dkinstall
                      9: .br
                     10: .B /usr/lib/asd/mkspool
                     11: .br
                     12: .B /usr/lib/asd/rmlocks
                     13: .br
                     14: .B /usr/lib/asd/udaemon
                     15: .SH DESCRIPTION
                     16: These programs constitute the innards of the
                     17: automatic software distribution system
                     18: invoked by
                     19: .IR ship (8).
                     20: .PP
                     21: .I Mkspool
                     22: creates an
                     23: .SM ASD
                     24: spool directory for its invoker (if necessary),
                     25: puts a file named
                     26: .F dummy
                     27: in the directory to prevent
                     28: .I cdaemon
                     29: from deleting it,
                     30: and prints the directory's name.
                     31: .PP
                     32: .I Udaemon
                     33: examines its invoker's
                     34: .SM ASD
                     35: spool directory in lexical order
                     36: for things to do.
                     37: To forestall multiple daemons, it first makes an empty file named
                     38: .BI L. pid
                     39: in the spool directory
                     40: and tries to link to it a file
                     41: .FR lock .
                     42: If the link fails,
                     43: .BI L. pid
                     44: is removed and
                     45: .I udaemon
                     46: exits.
                     47: .PP
                     48: Shipping instructions
                     49: appear in pairs of files with
                     50: .B .s
                     51: and
                     52: .B .d
                     53: suffixes.
                     54: .I Udaemon
                     55: examines each status
                     56: .RB ( .s )
                     57: file for destination names and
                     58: places a network call
                     59: to send the corresponding data
                     60: .RB ( .d )
                     61: file to
                     62: .I dkinstall
                     63: at each destination.
                     64: .I Dkinstall
                     65: verifies the data
                     66: and gives it to
                     67: .IR inspkg ,
                     68: see
                     69: .IR mkpkg (8).
                     70: .PP
                     71: A status file contains
                     72: zero or more entries,
                     73: each of which has one or more lines.
                     74: The first line of an entry is a
                     75: network address,
                     76: with default network
                     77: .B dk
                     78: and default service
                     79: .BR asd ,
                     80: possibly followed by a blank and a failure report.
                     81: An entry with destination
                     82: .L #
                     83: is a comment and is ignored.
                     84: Lines after the first begin with
                     85: a tab,
                     86: and contain output generated by the entry.
                     87: If an entry has output,
                     88: it is considered complete
                     89: and will be processed no further.
                     90: .PP
                     91: .I Udaemon
                     92: scans each status file once,
                     93: and attempts to send the corresponding data file to the destination
                     94: for each incomplete entry.
                     95: If the attempt fails,
                     96: a failure report is appended to the entry,
                     97: and it remains incomplete.
                     98: If the attempt succeeds,
                     99: or the failure is severe,
                    100: an error message
                    101: or output from
                    102: .I dkinstall
                    103: is appended to the entry,
                    104: which makes the entry complete.
                    105: If an entry is completed successfully
                    106: but there are no output lines,
                    107: the entry is deleted.
                    108: .PP
                    109: Each instance of
                    110: .I udaemon
                    111: remembers which network addresses failed with non-severe errors;
                    112: entries with the same address in later status files
                    113: are given failure status `deferred for sequence.'
                    114: .PP
                    115: If at least one additional entry was completed,
                    116: .I udaemon
                    117: sends the new status file to the owner by
                    118: .IR mail (1)
                    119: after the whole file has been scanned.
                    120: If no incomplete entries remain,
                    121: both status and data files are removed.
                    122: .PP
                    123: .I Cdaemon
                    124: examines every subdirectory of
                    125: .FR /usr/spool/asd ,
                    126: deletes empty directories and, impersonating the owner,
                    127: invokes
                    128: .I udaemon
                    129: for nonempty directories.
                    130: .I Cdaemon
                    131: should be run regularly by
                    132: .IR cron (8)
                    133: with super-user permissions.
                    134: .PP
                    135: .IR Rmlocks
                    136: removes all lock files in
                    137: subdirectories of
                    138: .FR /usr/spool/asd .
                    139: It should be called from
                    140: .IR rc (8).
                    141: .PP
                    142: Entries in an
                    143: .SM ASD
                    144: spool directory may be made without regard to locks
                    145: provided that everything is done in the right
                    146: sequence:
                    147: (1) call
                    148: .IR mkspool ;
                    149: (2) create the data file;
                    150: (3) create the status file under a temporary name;
                    151: (4) rename the status file to end with
                    152: .BR .s ;
                    153: (5) remove the
                    154: .F dummy
                    155: file, if present; and
                    156: (6) call
                    157: .IR udaemon .
                    158: .PP
                    159: Because
                    160: .I mail
                    161: will not send an empty file,
                    162: a status file must have a comment entry if
                    163: acknowledgment is desired after a
                    164: successful
                    165: .I udaemon
                    166: run.
                    167: .SH FILES
                    168: .BI /usr/spool/asd/ "userid   "
                    169: user's
                    170: .SM ASD
                    171: spool directory
                    172: .SH SEE ALSO
                    173: .IR mkpkg (8), 
                    174: .IR ship (8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.