• Leigh B. Stoller's avatar
    Add new NS program object. This syntax is different than I had · b9ba3398
    Leigh B. Stoller authored
    originally anticipated, but I was worried about confusion with the
    Agent/Application API that NS provides, and which is substantially
    different than this. Anyway, I added support for this syntax:
    	set prog0 [$ns program]
    	$prog0 set node $nodeA
    	$prog0 set command "/bin/ls -lt >& /users/stoller/logs/foo"
    Kinda obvious, although whats not obvious is that without events to
    start and stop them, these will never run. So, I added support for
    	$ns at 10 "$prog0 start"
    	$ns at 20 "$prog0 stop"
    You can start and stop programs as much as you like, but you cannot
    start a program that is already running; you have to stop it first.
    You can also issue these dynamically using the same api:
    	tevc -e testbed/Tevents now prog0 start \
    		"command=/bin/ls -lt / >& /users/stoller/logs/foo"
    	tevc -e testbed/Tevents now prog0 stop
    Note the quotes when using a multiword command. I also had intened to
    support a KILL command so that you could send arbitrary signals to a
    process. I added that, but I will not bother to document it yet; since
    I invoke /bin/csh to process the command line, the issue of signals is
    a little fuzzy. Sending a signal like -HUP to the parent process (the
    csh) is not really what we want to do. I think we can support this,
    but I need to poke around and see what the right way is.
parse.tcl.in 9.12 KB