Date: Thu, 15 Mar 2007 09:42:34 -0300 From: "Alexandre Biancalana" <biancalana@gmail.com> To: freebsd-questions@freebsd.org Subject: Re: ifstated check commands behavior Message-ID: <8e10486b0703150542v3c5d018chde2c1ad5f8ba09ec@mail.gmail.com> In-Reply-To: <8e10486b0703141137rde7b516ufb14f06221792c65@mail.gmail.com> References: <8e10486b0703141137rde7b516ufb14f06221792c65@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 3/14/07, Alexandre Biancalana <biancalana@gmail.com> wrote: > > 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 ? This shouldn't execute all state body until state change ?? Thanks for any help. Alexandre
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8e10486b0703150542v3c5d018chde2c1ad5f8ba09ec>