ifstated check commands behavior
Alexandre Biancalana
biancalana at gmail.com
Wed Mar 14 19:06:30 UTC 2007
Hi list,
I'm trying to setup ifstated to check two links and if some go down, do
some actions like change pf rules and machine's route.
My doubt is about the execution order/repetition of the states body of
ifstated.conf, in all configs that I tried just the last check is executed
always, follow and example:
ifstated.conf:
==============================
loglevel debug
ping1 = '( "ping -q -c 1 -t 3 www.site1.com > /dev/null" every 10 ) '
ping2 = '( "ping -q -c 1 -t 3 www.site2.com > /dev/null" every 10 ) '
state one {
if ! ( $ping1 && $ping2 ) {
set-state two
}
}
state two {
init {
run "logger -p console.notice -t ifstated 'Restarting
network !'"
}
if ( $ping && $ping2 ) {
set-state one
}
}
==============================
# ifstated -dv
ping1 = "( "ping -q -c 1 -t 3 www.site1.com > /dev/null" every 10 ) "
ping2 = "( "ping -q -c 1 -t 3 www.site2.com > /dev/null" every 10 ) "
ifstated: initial state: one
ifstated: changing state to one
ifstated: running ping -q -c 1 -t 3 www.site1.com > /dev/null
ifstated: running ping -q -c 1 -t 3 www.site2.com > /dev/null
ifstated: started
ifstated: changing state to two
ifstated: running ping -q -c 1 -t 3 www.site1.com > /dev/null
ifstated: running ping -q -c 1 -t 3 www.site2.com > /dev/null
ifstated: running ping -q -c 1 -t 3 www.site2.com > /dev/null
ifstated: running ping -q -c 1 -t 3 www.site2.com > /dev/null
As you can see, after change state ifstated execute only the *last* check
command of the statement (ping2) forever....
This is the expected behavior ?
I'm running 6-STABLE + ifstated-20050505 (instaled via
/usr/ports/net/ifstated)
Thanks for any help.
Alexandre
More information about the freebsd-questions
mailing list