#!/usr/bin/python "Monitor multiple hosts using popen()/pmonitor()" from __future__ import print_function from mininet.net import Mininet from mininet.topo import SingleSwitchTopo from mininet.util import pmonitor from time import time from signal import SIGINT def pmonitorTest( N=3, seconds=10 ): "Run pings and monitor multiple hosts using pmonitor" topo = SingleSwitchTopo( N ) net = Mininet( topo ) net.start() hosts = net.hosts print( "Starting test..." ) server = hosts[ 0 ] popens = {} for h in hosts: popens[ h ] = h.popen('ping', server.IP() ) print( "Monitoring output for", seconds, "seconds" ) endTime = time() + seconds for h, line in pmonitor( popens, timeoutms=500 ): if h: print( '<%s>: %s' % ( h.name, line ) ) if time() >= endTime: for p in popens.values(): p.send_signal( SIGINT ) net.stop() if __name__ == '__main__': pmonitorTest()