When given more than one argument,
cfpeek treats the rest of
arguments as search keys. It then searches for statements with
pathnames matching each of the keys and outputs them. A key can be
either a pathname, or a pattern.
The following command looks for the ‘pidfile’ statement at the topmost level of hierarchy and prints it:
$ cfpeek sample.conf .pidfile .pidfile: /var/run/example
As you see, it uses the same output format as with full listings. If you wish to change it, use the --format option, introduced in the previous section. For example, to retrieve only the value:
$ cfpeek --format=value sample.conf .pidfile /var/run/example
This approach is quite common when
cfpeek is used in shell
scripts. It will be illustrated in more detail below.
If a key is not found,
cfpeek prints a message on the standard
error and starts searching for the next key (if any). When all keys
are exhausted, the program exits with status 1 to indicate that some
of them have not been found. To suppress the diagnostics output, use
the --quiet (-q) option.
To illustrate all this, the following example shows how to use
cfpeek in a start-up script to check whether a program has
already been started and to bring it down, if requested:
#! /bin/sh pidfile=`cfpeek -q --format=value sample.conf .pidfile` if test -f $pidfile; then pid=`head -1 $pidfile` else pid= fi case $1 in start) if test -n "$pid"; then echo >&2 "the program is already running" else # start the program sample-start fi ;; status) if test -n "$pid"; then echo "program is running at pid $pid" else echo "program is not running" fi ;; stop) test -n "$pid" && kill -TERM $pid ;; esac
This document was generated on January 7, 2021 using makeinfo.Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.