这是我在这里发布的第一个问题。我试图在整个搜索过程中进行搜索,但如果我没有(并且答案在其他地方显而易见),请告诉我。
我有一个为我运行程序的脚本,这里是:
csv_file=../data/teste_nohup.csv
trace_file=../data/gnp.trace
declare -i n=100
declare -i p=1
declare -i counter=0
while [ $counter -lt 3 ];
do
n=100
while true
do
nice -19 sage gnptest.py ${n} ${p} | tee -a ${csv_file}
notify-send "finished test gnp ${n} ${p}"
done
done
所以,我尝试做的是运行gnptest.py程序几次,并将结果写入csv_file。
问题是,根据输入,程序可能需要很长时间才能完成。所以我想通过ssh连接到服务器,启动程序,关闭终端,并不时检查输出文件。 我试过nohup和disown。 Nohup创建了一个巨大的nohup.out文件,其中包含了在正常运行脚本时我无法获得的错误(例如,它抱怨使用-lt操作数)。但是我面临的最大问题是没有命令(nohup ou disown -h)正在执行程序并将输出发送到我在csv_file变量中指定的文件,这是使用发球台指挥。此外,在我退出后,它们似乎都没有继续运行......
非常感谢任何帮助。
提前致谢!!
答案 0 :(得分:0)
我刚刚加入,所以无法添加评论
请尝试在脚本中使用重定向而不是tee
并摆脱Nohup.out使用以下运行脚本
nohup script.sh > /dev/null 2>&1 &
如果上面产生错误,请使用
nohup script.sh > /dev/null 2>&1 </dev/null &
希望这会有所帮助。