Oops. Forgot these....
[oweals/busybox.git] / docs / busybox.sgml
index 9c017901180471db479bd97240243026c1dcfce4..2d372506b190a3ccd2591b3c00e22b87f845c0ac 100644 (file)
 
                <para>
                ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear,
-               cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, du,
-               dumpkmap, dutmp, echo, false, fbset, fdflush, find, free,
+               cp, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dpkg-deb,
+               du, dumpkmap, dutmp, echo, false, fbset, fdflush, find, free,
                freeramdisk, fsck.minix, grep, gunzip, gzip, halt, head,
                hostid, hostname, id, init, insmod, kill, killall, length, ln,
                loadacm, loadfont, loadkmap, logger, logname, ls, lsmod,
 
        </sect1>
 
+       <sect1 id="dpkg-deb">
+           <title>dpkg-deb</title>
+
+               <para>
+               Usage: dpkg-deb [OPTION] archive [directory] 
+               </para>
+
+               <para>
+               Debian package archive (.deb) manipulation tool 
+               </para>
+
+               <para>
+               Options:
+               </para>
+               
+               <para>
+               <screen>
+                       -c      List the contents of the filesystem tree archive portion of the package 
+                       -e      Extracts the control information files from a package archive into the specified directory.
+                               If  no  directory  is specified then a subdirectory DEBIAN in the current directory is used.
+                       -x      Silently extracts the filesystem tree from a package archive into the specified directory.
+                       -X      Extracts the filesystem tree from a package archive into the specified directory, listing the files as it goes. 
+                       If required the specified directory (but not its parents) will be created.
+               </screen>
+               <para>
+
+               <para>
+               Example:
+               </para>
+
+               <para>
+               <screen>
+                       dpkg-deb -e ./busybox_0.48-1_i386.deb
+                       dpkg-deb -x ./busybox_0.48-1_i386.deb ./unpack_dir
+               </screen>
+               </para>
+       </sect1>
+
        <sect1 id="du">
            <title>du</title>
 
 
                <para>
                Summarize the disk space used for each FILE or current
-               directory.  Disk space printed in units of 1k (i.e.
+               directory.  Disk space printed in units of 1k (i.e.,
                1024 bytes).
                </para>
 
                </para>
 
                <para>
-               Prints out a binary keyboard translation table to standard input.
+               Prints out a binary keyboard translation table to standard output.
                </para>
 
                <para>
                <screen>
                        -follow         Dereference symbolic links
                        -name PATTERN   File name (leading directories removed) matches PATTERN
-                       -print          Print the full file name followed by a newline to stdout
+                       -type X         Filetype matches X (where X is one of: f,d,l,b,c,...)
+                       -perm PERMS     Permissions match any of (+NNN); all of (-NNN); or exactly (NNN)
+                       -mtime TIME     Modified time is greater than (+N); less than (-N); or exactly (N) days
                </screen>
                </para>
 
                <para>
                <screen>
                        -c      Write output to standard output
+                       -d      decompress
                </screen>
                </para>
 
 
                <para>
                <screen>
-                       -s      Short
-                       -i      Addresses for the hostname
-                       -d      DNS domain name
-                       -F FILE Use the contents of FILE to specify the hostname
+                       -s              Short
+                       -i              Addresses for the hostname
+                       -d              DNS domain name
+                       -F, --file FILE Use the contents of FILE to specify the hostname
                </screen>
                </para>
 
                <screen>
                        -g      Print only the group ID
                        -u      Print only the user ID
+                       -n      print a name instead of a number (with for -ug)
                        -r      Print the real user ID instead of the effective ID (with -ug)
                </screen>
                </para>
                <sect2>
                    <title>id</title>
                        <para>
-                       WARNING: This field has a non-traditional
-                       meaning for BusyBox init!  The id field is used
-                       by BusyBox init to specify the controlling tty
-                       for the specified process to run on.  The
-                       contents of this field are appended to "/dev/"
-                       and used as-is.  There is no need for this field
-                       to be unique, although if it isn't you may have
-                       strange results.  If this field is left blank,
-                       it is completely ignored.  Also note that if
-                       BusyBox detects that a serial console is in use,
-                       then all entries containing non-empty id fields
-                       will _not_ be run.  BusyBox init does nothing
-                       with utmp.  We don't need no stinkin' utmp.
+
+                       WARNING: This field has a non-traditional meaning for BusyBox init!
+                       The id field is used by BusyBox init to specify the controlling tty
+                       for the specified process to run on.  The contents of this field
+                       are appended to "/dev/" and used as-is.  There is no need for this
+                       field to be unique, although if it isn't you may have strange
+                       results.  If this field is left blank, the controlling tty is set
+                       to the console.  Also note that if BusyBox detects that a serial
+                       console is in use, then only entries whose controlling tty is
+                       either the serial console or /dev/null will be run.  BusyBox init
+                       does nothing with utmp.  We don't need no stinkin' utmp.
+
                        </para>
                </sect2>
 
                <sect2>
                    <title>action</title>
 
+
+                       <para>
+                       Valid actions include: sysinit, respawn, askfirst, wait, 
+                       once, and ctrlaltdel.
+                       </para>
+
+
                        <para>
-                       Valid actions include: sysinit, respawn,
-                       askfirst, wait, once, and ctrlaltdel.
+                       The available actions can be classified into two groups: actions
+                       that are run only once, and actions that are re-run when the specified
+                       process exits.
                        </para>
 
                        <para>
-                       askfirst acts just like respawn, but before
-                       running the specified process it displays the
-                       line "Please press Enter to activate this
-                       console." and then waits for the user to press
-                       enter before starting the specified process.
+                       Run only-once actions:
                        </para>
 
                        <para>
-                       Unrecognized actions (like initdefault) will
-                       cause init to emit an error message, and then go
-                       along with its business.
+                       'sysinit' is the first item run on boot.  init waits until all
+                       sysinit actions are completed before continuing.  Following the
+                       completion of all sysinit actions, all 'wait' actions are run.
+                       'wait' actions, like  'sysinit' actions, cause init to wait until
+                       the specified task completes.  'once' actions are asyncronous,
+                       therefore, init does not wait for them to complete.  'ctrlaltdel'
+                       actions are run immediately before init causes the system to reboot
+                       (unmounting filesystems with a 'ctrlaltdel' action is a very good
+                        idea).
                        </para>
+
+                       <para>
+                       Run repeatedly actions:
+                       </para>
+
+                       <para>
+                       'respawn' actions are run after the 'once' actions.  When a process
+                       started with a 'respawn' action exits, init automatically restarts
+                       it.  Unlike sysvinit, BusyBox init does not stop processes from
+                       respawning out of control.  The 'askfirst' actions acts just like
+                       respawn, except that before running the specified process it
+                       displays the line "Please press Enter to activate this console."
+                       and then waits for the user to press enter before starting the
+                       specified process.  
+                       </para>
+
+                       <para>
+                       Unrecognized actions (like initdefault) will cause init to emit an
+                       error message, and then go along with its business.  All actions are
+                       run in the reverse order from how they appear in /etc/inittab.
+                       </para>
+
                </sect2>
 
                <sect2>
                <sect2>
                    <title>Example /etc/inittab file</title>
 
-               <para>
-               <screen>
-                       # This is run first except when booting in single-user mode.
-                       #
-                       ::sysinit:/etc/init.d/rcS
-
-                       # /bin/sh invocations on selected ttys
-                       #
-                       # Start an "askfirst" shell on the console (whatever that may be)
-                       ::askfirst:-/bin/sh
-                       # Start an "askfirst" shell on /dev/tty2-4
-                       tty2::askfirst:-/bin/sh
-                       tty2::askfirst:-/bin/sh
-                       tty2::askfirst:-/bin/sh
-
-                       # /sbin/getty invocations for selected ttys
-                       #
-                       tty4::respawn:/sbin/getty 38400 tty5
-                       tty5::respawn:/sbin/getty 38400 tty6
-
-                       # Example of how to put a getty on a serial line (for a terminal)
-                       #
-                       #ttyS0::respawn:/sbin/getty -L ttyS0 9600 vt100
-                       #ttyS1::respawn:/sbin/getty -L ttyS1 9600 vt100
-                       #
-                       # Example how to put a getty on a modem line.
-                       #ttyS2::respawn:/sbin/getty -x0 -s 57600 ttyS2
-
-                       # Stuff to do before rebooting
-                       ::ctrlaltdel:/bin/umount -a -r
-                       ::ctrlaltdel:/sbin/swapoff
-               </screen>
-               </para>
+                   <para>
+                   <screen>
+                           # This is run first except when booting in single-user mode.
+                           #
+                           ::sysinit:/etc/init.d/rcS
+
+                           # /bin/sh invocations on selected ttys
+                           #
+                           # Start an "askfirst" shell on the console (whatever that may be)
+                           ::askfirst:-/bin/sh
+                           # Start an "askfirst" shell on /dev/tty2-4
+                           tty2::askfirst:-/bin/sh
+                           tty2::askfirst:-/bin/sh
+                           tty2::askfirst:-/bin/sh
+
+                           # /sbin/getty invocations for selected ttys
+                           #
+                           tty4::respawn:/sbin/getty 38400 tty5
+                           tty5::respawn:/sbin/getty 38400 tty6
+
+                           # Example of how to put a getty on a serial line (for a terminal)
+                           #
+                           #::respawn:/sbin/getty -L ttyS0 9600 vt100
+                           #::respawn:/sbin/getty -L ttyS1 9600 vt100
+                           #
+                           # Example how to put a getty on a modem line.
+                           #::respawn:/sbin/getty 57600 ttyS2
+
+                           # Stuff to do before rebooting
+                           ::ctrlaltdel:/bin/umount -a -r
+                           ::ctrlaltdel:/sbin/swapoff
+                   </screen>
+                   </para>
                </sect2>
        </sect1>
 
                        -k      Make module autoclean-able.
                        -v      Verbose output
                        -x      Do not export externs
+                       -L      Prevent simultaneous loads of the same module
                </screen>
                </para>
        </sect1>
                </para>
 
                <para>
-               Write MESSAGE to the system log.  If MESSAGE is '-', log
+               Write MESSAGE to the system log.  If MESSAGE is omitted, log
                stdin.
                </para>
 
 
                <para>
                Creates a temporary file with its name based on
-               TEMPLATE.  TEMPLATE is any name with six `Xs' (i.e.
+               TEMPLATE.  TEMPLATE is any name with six `Xs' (i.e.,
                /tmp/temp.XXXXXX).
                </para>
 
                </para>
 
                <para>
-               Open a pipe to HOST:PORT.
+                  or: nc -p PORT -l
+               </para>
+
+
+               <para>
+               Open a pipe to HOST:PORT or listen for a connection on PORT.
                </para>
 
                <para>
 
                <para>
                <screen>
+                       -i              Always prompt before removing each destinations
                        -f              Remove existing destinations, never prompt
                        -r or -R        Remove the contents of directories recursively
                </screen>
                        -n      Run as a foreground process
                        -K      Do not start up the klogd process
                        -O FILE Use an alternate log file (default=/var/log/messages)
-                       -R HOST[:PORT] Log messages to HOST on PORT (default=514) over UDP.
+                       -R HOST[:PORT] Log remotely to IP or hostname on PORT (default PORT=514/UDP)
+                       -L      Log locally as well as network logging (default is network only)
                </screen>
                </para>
 
                <screen>
                        -a      Unmount all file systems
                        -r      Try to remount devices as read-only if mount is busy
-                       -f      Force filesystem umount (i.e. unreachable NFS server)
+                       -f      Force filesystem umount (i.e., unreachable NFS server)
                        -l      Do not free loop device (if a loop device has been used)
                </screen>
                </para>
                INPUT (or stdin), writing to OUTPUT (or stdout).
                </para>
 
+               <para>
+               Options:
+               </para>
+
+               <para>
+               <screen>
+               -c              prefix lines by the number of occurrences
+               -d              only print duplicate lines
+               -u              only print unique lines
+               </screen>
+               </para>
+
                <para>
                Example:
                </para>
        </sect1>
 
        <sect1 id="unrpm">
-           <titleunrpmuniq</title>
+           <title>unrpm</title>
 
                <para>
                Usage: unrpm < package.rpm | gzip -d | cpio -idmuv
                </para>
        </sect1>
 
+       <sect1 id="watchdog">
+           <title>watchdog</title>
+
+               <para>
+               Usage: watchdog device
+               </para>
+
+               <para>
+               Periodically writes to watchdog device B<device>.
+               </para>
+       </sect1>
+
        <sect1 id="wc">
            <title>wc</title>
 
     <title>AUTHORS</title>
 
        <para>
-       The following people have contributed code to BusyBox whether
-       they know it or not.
+       The following people have made significant contributions to 
+       BusyBox -- whether they know it or not.
        </para>
 
        <para>
        Erik Andersen &lt;andersee@debian.org&gt;
        </para>
 
+       <para>
+       Edward Betts &lt;edward@debian.org&gt;
+       </para>
+
        <para>
        John Beppu &lt;beppu@lineo.com&gt;
        </para>
        Karl M. Hegbloom &lt;karlheg@debian.org&gt;
        </para>
 
+       <para>
+       Daniel Jacobowitz &lt;dan@debian.org&gt;
+       </para>
+
+       <para>
+       Matt Kraai &lt;kraai@alumni.carnegiemellon.edu&gt;
+       </para>
+
        <para>
        John Lombardo &lt;john@deltanet.com&gt; 
        </para>
        Bruce Perens &lt;bruce@perens.com&gt;
        </para>
 
+       <para>
+       Chip Rosenthal &lt;chip@unicom.com&gt;, &lt;crosenth@covad.com&gt;
+       </para>
+
        <para>
        Pavel Roskin &lt;proski@gnu.org&gt;
        </para>
 
+       <para>
+       Gyepi Sam &lt;gyepi@praxis-sw.com&gt;
+       </para>
+
        <para>
        Linus Torvalds &lt;torvalds@transmeta.com&gt;
        </para>
        <para>
        Enrique Zanardi &lt;ezanardi@ull.es&gt;
        </para>
+
+
   </chapter>
 </book>    <!-- End of the book -->