While pump may be started manually, it is normally started automatically by ifup(8) for devices configured via BOOTP or DHCP.
If
pump
is managing an interface, you can run it again to query
the status of that interface. For example,
pump -i eth0 --status
will print the current status of device eth0.
| switch | long option | description |
| -? | --help | Show this help message |
| -c | --config-file=FILE | Get configuration from FILE instead of /etc/pump.conf |
| -d | --no-dns | Don't update DNS resolver configuration |
| -h | --hostname=HOSTNAME | Request HOSTNAME |
| -i | --interface=IFACE | Manage IFACE rather than eth0 |
| --keep-up | Keep the interface up when released | |
| -k | --kill | Kill daemon (and disable all interfaces) |
| -l | --lease=HOURS | Request least time of HOURS |
| --lookup-hostname | Look up hostname in DNS | |
| -R | --renew | Renew lease immediately |
| -r | --release | Release interface |
| -m | --route-metric=METRIC | Metric to use on routes (normally 0) |
| --no-gateway | Don't configure a default route for this interface | |
| --no-resolvconf | Don't use the resolvconf program to update resolv.conf | |
| --no-ntp | Don't update ntp.conf | |
| --no-setup | Don't set up anything | |
| --script=SCRIPT | Call SCRIPT (or null string to disable) | |
| -s | --status | Display interface status |
| --usage | Display a brief usage message | |
| --win-client-ident | Specify a Windows(tm)-like client identifier |
Note that pump itself never sets the computer's hostname.
The configuration file is line-oriented. Most lines contain a directive followed by zero or more arguments. Arguments are handled similarly to how shells handle command arguments, allowing the use of quotes and backslash escapes. Comments are allowed, and must begin with a # character. Spaces and tabs are ignored.
Directives may be specified at two levels: global and specific. Global directives change pump's behavior for all of the devices that it manages whereas specific directives change pump's behavior for a single device. Later directives always override earlier ones.
Here is an example configuration file:
# sample /etc/pump.conf file
domainsearch "my.own.org own.org at.work.com"
retries 3
device eth1 {
nodns
}
This configuration file tells pump to use a specific DNS search path rather than deriving one from the DHCP or BOOTP server response, to retry each request 3 times (for a total of 4 tries), and not to change the DNS configuration file when it's configuring the eth1 device.
Here is a complete list of directives:
| Condition | arg1 | arg2 | arg3 |
| lease | up | eth0 | 1.2.3.4 |
| renewal | renewal | eth0 | 2.3.4.5 |
| release | down | eth0 |
When events occur in negotiation with the server, call the executable FILE. Scripts are called when a lease is granted, when a renewal is negotiated, and when the interface is brought down and the address released. The script is called with two or three arguments, depending on the condition, as documented in the table above.
At startup pump tries to detect whether another instance of itself is running. If the UNIX domain socket (normally /var/run/pump.sock) does not exist, pump tries to connect to tcp/127.0.0.1:68. If it is also unreachable (possibly due to packet filtering), pump will issue a warning to stderr and assume that there is no instance of itself running.
Probably limited to Ethernet, might work on PLIP, probably not ARCnet and Token Ring. The configuration file should let you do more things.
Submit bug reports at the Bug Track link at http://developer.redhat.com/