As previously established (see Introduction), GNU Alive is a package
that provides a command-line program to periodically make network
contact with (aka “ping”) a specified host. This section describes
some differences between ‘ping’ and ‘alive’ (the program).
- takes ‘--help’, ‘--version’
- Like all proper GNU programs, ‘alive’ supports these options,
displaying the requested information to stdout and exiting successfully.
See Invoking alive.
Note that Inetutils (see GNU Software)
ping also supports these options, as it is also a proper GNU program.
Other ping programs may or may not.
- no arguments
- To keep things simple and consistent, ‘alive’ takes no arguments,
and instead reads configuration information from files in the directory
~/.alive.d, where ~ is expanded using the value of the
HOME environment variable. If those files don't exist,
‘alive’ uses reasonable defaults.
- reconfiguration without restart
- Each configuration file is rescanned at the top of every loop iteration
if its modification time differs from the last check. This means it's
enough to edit a file (and wait); no need to restart the program.
- multiple hosts / no hosts
- If you specify more than one host, ‘alive’ contacts them in a
round-robin fashion. This reduces the annoyance level of some network
administrators—always a good idea.
On the other hand, if you don't specify any hosts, ‘alive’ contacts
- randomized period
- The default period, i.e., time between successive contacts,
is a random number of seconds in the range 149 to 420, inclusive.
- source code available at runtime
- All GNU programs are distributed as source code, of course, but GNU
Alive goes further; the source code is also available when you run the
This is because ‘alive’ is implemented as a script, a
sequence of textual instructions for an “interpreter” program to read
and evaluate, rather than a binary file.
Most users don't care about runtime access to source code, but perhaps
you are not like most users.
- implementation language: Guile Scheme
- configuration language: sexps
- GNU Alive uses Guile
Scheme (see GNU Software)
as the implementation language.
Each configuration file is a series of sexps, or
structured expressions, amenable to the Scheme
(Actually, the syntax is designed to be a subset of what Scheme
read can handle, to be friendly also to Emacs Lisp
Most programmers don't care about sexps, but perhaps you are not like