cvs commit: ports/net/quagga Makefile ports/net/quagga/files
quagga.sh.in
Emil Smolenski
am at raisa.eu.org
Tue Feb 2 00:52:50 UTC 2010
On Mon, 01 Feb 2010 22:43:56 +0100, Doug Barton <dougb at freebsd.org> wrote:
>> pgollucci 2010-02-01 17:45:31 UTC
Philip, Boris, thanks for your work! Doug, thanks for your review of my
little change and the rest of the rc script.
> There is a better way to accomplish what this change does which I
> included in the attached patch.
I think it isn't better way. Return value is OK, but commands aren't
called for all daemons. Your script halts on first error but I think for
example stopping already stopped daemon shouldn't prevent another daemon
from being stopped.
Let's assume following configuration:
# grep quagga /etc/rc.conf
quagga_daemons="zebra ripd ripngd ospfd bgpd"
# cd /usr/local/etc/rc.d/
./quagga.am -- my rc script
./quagga.dougb -- Doug's rc script
Consider following scenarios:
Scenario #1 (ripngd stopped)
We want to know which daemons are running
# ./quagga.dougb onestatus
zebra is running as pid 74504.
ripd is running as pid 74352.
ripngd is not running.
but...
# ./quagga.am onestatus
zebra is running as pid 74504.
ripd is running as pid 74352.
ripngd is not running.
ospfd is running as pid 74386.
bgpd is running as pid 74402.
Scenario #2 (zebra and ospfd stopped)
Something is wrong. Let's check:
# ./quagga.dougb onestatus
zebra is not running.
Ok, my quagga is turned off. Let's turn it on:
# ./quagga.dougb onestart
Starting zebra.
ripd already running? (pid=74352).
Confusing, but OK -- one process is started, another was already started
-- my quagga is now started.
but...
# ./quagga.am onestatus
zebra is running as pid 74950.
ripd is running as pid 74352.
ripngd is running as pid 74901.
ospfd is not running.
bgpd is running as pid 74402.
# pkill zebra
# ./quagga.am onestatus
zebra is not running.
ripd is running as pid 74352.
ripngd is running as pid 74901.
ospfd is not running.
bgpd is running as pid 74402.
# ./quagga.am onestart
Starting zebra.
ripd already running? (pid=74352).
ripngd already running? (pid=74901).
Starting ospfd.
bgpd already running? (pid=74402).
Scenario #3 (zebra stopped)
OK, I don't want to play with quagga anymore. Stop it:
# ./quagga.dougb onestop
zebra not running? (check /var/run/quagga/zebra.pid).
Uff! But...
# ./quagga.am onestatus
zebra is not running.
ripd is running as pid 75192.
ripngd is running as pid 74901.
ospfd is running as pid 75080.
bgpd is running as pid 74402.
# ./quagga.am onestop
zebra not running? (check /var/run/quagga/zebra.pid).
Stopping ripd.
Stopping ripngd.
Stopping ospfd.
Stopping bgpd.
Etc, etc...
> Regarding the other changes:
>
> 1. (Hopefully) improve readability for the comments
> 2. Add quagga_extralibs_path to the comments, some description should be
> included there instead of "blah blah." :) The reason for this is that
> the default empty variable assignments have been removed (they are
> neither necessary nor desirable).
> 3. The construction "while true; do" is usually safe, but better to use
> the shell internal way of saying the same thing.
> 4. Make $daemon in do_cmd local
I think rest of the changes are appropriate.
--
am
More information about the cvs-ports
mailing list