我編寫了一個Python腳本,用不同的種子和不同的節點數運行多個NS-3仿真。 我的腳本調用./waf --run=<scenario_name>
然後執行10個種子,更改節點數並執行10個種子,依此類推。在後臺運行python腳本
問題是,我打電話給我的腳本後,我要求用戶輸入(運行哪個場景)。因爲那raw_input
電話,我不能使用nohup myScript.py &
。我也試過CTRL + Z
,bg
和disown
。但是那也行不通。
這裏是我的腳本:
#!/usr/bin/python
import subprocess
from pathlib import Path
import glob
scenario = raw_input("Type scenario (foo or bar): ")
if scenario == 'foo':
wafString = './waf --run "scratch/test-foo --nodeCount='
elif scenario == 'bar':
wafString = './waf --run "scratch/test-bar --nodeCount='
else:
print ("Wrong input!")
ns3Global = 'NS_GLOBAL_VALUE="RngRun='
numbers = [25, 50, 100] # number of nodes
for nodeCount in numbers:
for rngRun in range(1,11):
myArgument = ns3Global + str(rngRun) + '" ' + wafString + str(nodeCount) + '" '
print "*** Running experiment with " + str(nodeCount) + \
" nodes and random seed " + str(rngRun) + "\n"
subprocess.call(myArgument, shell=True)
任何幫助將非常感激。
爲什麼不寫2個腳本?第一個腳本會詢問用戶輸入,然後在後臺啓動第二個腳本(使用scenario參數)並終止。 –