<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I'm using the MurphyMc/pox fork, which may or may not make a difference. It works fine if you quit using Ctrl-D at the interpreter or by Ctrl-C without the interpreter...</div><div><br></div><div>$ cat ext/zzz.py</div><div>import pox.core</div><div><br></div><div>def handler (event):</div><div> print "EVENT", type(event)</div><div><br></div><div>pox.core.core.addListener(pox.core.GoingUpEvent, handler)</div><div>pox.core.core.addListener(pox.core.GoingDownEvent, handler)</div><div>$</div><div><br></div><div>$ ./pox.py zzz</div><div>POX 0.0.0 / Copyright 2011-2012 James McCauley, et al.</div><div>EVENT <class 'pox.core.GoingUpEvent'></div><div>INFO:core:POX 0.0.0 is up.</div><div>This program comes with ABSOLUTELY NO WARRANTY. This program is free software,</div><div>and you are welcome to redistribute it under certain conditions.</div><div>Type 'help(pox.license)' for details.</div><div>Ready.</div><div>POX> ^D</div><div>INFO:core:Going down...</div><div>EVENT <class 'pox.core.GoingDownEvent'></div><div>INFO:core:Down.</div><div>$</div><div><br></div><div><div>$ ./pox.py --no-cli zzz</div><div>POX 0.0.0 / Copyright 2011-2012 James McCauley, et al.</div><div>EVENT <class 'pox.core.GoingUpEvent'></div><div>INFO:core:POX 0.0.0 is up.</div><div>^CINFO:core:Going down...</div><div>EVENT <class 'pox.core.GoingDownEvent'></div><div>INFO:core:Down.</div></div><div>$</div><div><br></div><div><div>It doesn't work like that if you quit using exit(). </div></div><div><br></div><div>$ ./pox.py zzz</div><div><div>POX 0.0.0 / Copyright 2011-2012 James McCauley, et al.</div><div>EVENT <class 'pox.core.GoingUpEvent'></div><div>INFO:core:POX 0.0.0 is up.</div><div>This program comes with ABSOLUTELY NO WARRANTY. This program is free software,</div><div>and you are welcome to redistribute it under certain conditions.</div><div>Type 'help(pox.license)' for details.</div><div>Ready.</div><div>POX> exit()</div></div><div>$</div><div><br></div><div>I've pushed a change to MurphyMc/pox so that exit() from the interpreter works as expected, but sys.exit() still exits immediately (I am hesitant to use atexit to change the latter).</div><div><br></div><div>For your case, though, you might just want to check core.running -- it's a flag which changes to False when POX is going down.</div><div><br></div><div>-- Murphy</div><div><br></div><div><div>On Sep 6, 2012, at 7:23 PM, Masoud Moshref Javadi wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<div bgcolor="#FFFFFF" text="#000000">
This is my code:<br>
ThreadRule is a thread that creates opens a socket. and checks the
flag if the flag is false it will stop<br>
<br>
The GoingUpEvent works but the GoingDownEvent does not. So is it
even the right way to do cleanup for a pox controller?<br>
<br>
class my_l2_learning (EventMixin):<br>
def __init__ (self, port):<br>
self.listenTo(core.openflow)<br>
<br>
self.t = ThreadRule(port)<br>
self.t.start()<br>
#core.addListener(pox.core.GoingUpEvent,
self._handle_GoingUpEvent)<br>
core.addListener(pox.core.GoingDownEvent,
self._handle_GoingDownEvent)<br>
<br>
def _handle_GoingDownEvent (self, event):<br>
self.t.flag=False<br>
print('go down')<br>
def _handle_GoingUpEvent (self, event):<br>
print ("go up")<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 9/6/2012 3:04 PM, Murphy McCauley
wrote:<br>
</div>
<blockquote cite="mid:CAHC=y9QscxBK2d07dW_TU3vdZwTzjfPKE02W+R=UvdeiArLdKw@mail.gmail.com" type="cite"><p>Can you post the code that you tried?</p><p>-- Murphy</p>
<div class="gmail_quote">On Sep 6, 2012 2:29 PM, "Masoud Moshref
Javadi" <<a moz-do-not-send="true" href="mailto:moshrefj@usc.edu">moshrefj@usc.edu</a>> wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
I want to run a method when the controller goes down to close
a socket.<br>
I tried to register for pox.core.GoingDownEvent but it does
not work. Is there any special way to be informed on the exit
of pox?<br>
<br>
-- <br>
Masoud Moshref Javadi<br>
Computer Engineering PhD Student<br>
Ming Hsieh Department of Electrical Engineering<br>
University of Southern California<br>
<br>
</blockquote>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Masoud Moshref Javadi
Computer Engineering PhD Student
Ming Hsieh Department of Electrical Engineering
University of Southern California</pre>
</div>
</blockquote></div><br></body></html>