Erlang Advocacy and kill -kill

Klas Johansson <>
Tue Jan 20 15:59:27 CET 2004


Hi Gordon,

I noticed that the aardvark node is referred to as 
in one case and  in another (i.e. an extra `a' in
one of the machine names).

Regards,
Klas


"Gordon Guthrie, BTP, BT, SE" <> writes:

> Folks
> 
> I am trying to do a spot of Erlang advocacy. I want to show how you can
> start a distributed app across two machines, kill one and then have the
> other take over.
> 
> However, I want to do it on a laptop as I have to go visiting with it.
> 
> I have written a simple app with a top supervisor, a single supervisor under
> it which can starts a worker.
> 
> I deploy this app to two nodes, 'aardvark' and 'badger' which I start with
> batch files (boot scripts will come later) which reference .config files.
> These 4 files are shown below:
> 
> *********start of start_aardvark ******************
> 
> #! /bin/bash
> cd /opt/erlang_apps/swarm
> erl -s toolbar -sname aardvark -config
> /opt/erlang_apps/swarm/aardvark.config -heart
> 
> *********end of start_aardvark ********************
> 
> *********start of start_badger*********************
> 
> #! /bin/bash
> cd /opt/erlang_apps/swarm
> erl -s toolbar -sname badger -config /opt/erlang_apps/swarm/badger.config
> -heart
> 
> *********end of start_badger***********************
> 
> *********start of aardvark.config******************
> 
> [{kernel,
>   [{distributed, [{swarm, 5000, [,
> {}]}]},
>    {sync_nodes_manadatory, []},
>    {sync_nodes_timeout, 5000}
>   ]
>  }
> ].
> 
> *********end of aardvark.config********************
> 
> *********start of badger.config********************
> 
> [{kernel,
>   [{distributed, [{swarm, 5000, [,
> {}]}]},
>    {sync_nodes_manadatory, []},
>    {sync_nodes_timeout, 5000}
>   ]
>  }
> ].
> 
> *********end of badger.config**********************
> 
> So far so good, the two nodes start up, I do application:start(swarm) on
> both of them, the application starts on one of them, but not the other.
> 
> In order to demonstrate the magic of Erlang I now want to kill the node that
> has the app on it and watch the app migrate over, and the node to restart -
> kill is our friend. However running 'kill <erlang node pid>' or 'kill -kill
> <erlang node pid>' will kill the node but it doesn't failover. I suspect
> that this is because Erlang knows I am cheating, and is behaving gracefully.
> 
> Have tried 'man murder' but no joy ;-> How can I really slaughter the node
> to make sure it fails over (or having I got something wrong in my configs?).
> 
> TIA
> 
> Gordon
> 
> ______________________________________________________________________
> Scottish Enterprise Network
> http://www.scottish-enterprise.com
> 
> Address & Contact Numbers
> 
> 150 Broomielaw
> 5 Atlantic Quay
> Glasgow
> G2 8LU.
> Tel:  +44 (0)141 248 2700.
> Fax:  +44 (0)141 221 3217
> 
> message is sent in confidence for the addressee only.
> It may contain legally privileged information. The contents are not to
> be disclosed to anyone other than the addressee. Unauthorised recipients
> are requested to preserve this confidentiality and to advise the sender
> immediately of any error in transmission.



More information about the erlang-questions mailing list