注销后保持脚本在ssh中运行

时间:2014-04-18 14:55:52

标签: linux ssh nohup

这是我在这里发布的第一个问题。我试图在整个搜索过程中进行搜索,但如果我没有(并且答案在其他地方显而易见),请告诉我。

我有一个为我运行程序的脚本,这里是:

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变量中指定的文件,这是使用发球台指挥。此外,在我退出后,它们似乎都没有继续运行......

非常感谢任何帮助。

提前致谢!!

1 个答案:

答案 0 :(得分:0)

我刚刚加入,所以无法添加评论

请尝试在脚本中使用重定向而不是tee 并摆脱Nohup.out使用以下运行脚本 nohup script.sh > /dev/null 2>&1 &

如果上面产生错误,请使用

nohup script.sh > /dev/null 2>&1 </dev/null &

希望这会有所帮助。