unix nohup sqlplus无法正常工作

时间:2017-03-20 15:03:35

标签: unix nohup

尝试在一个NOHUP命令中运行所有sql脚本。以下是我的代码。但是,它没有基于以下的nohup模式运行。也没有错误。如何在一个NOHUP命令中运行以下所有内容?

nohup sqlplus -S /NOLOG << %EOF% > engine_error.log
WHENEVER SQLERROR EXIT 1;
@$Level2/passFile server05
@engine_check.sql $stroke1 $bore1 
@engine_start.sql 
%EOF% &

3 个答案:

答案 0 :(得分:0)

尝试将其放入脚本中,然后选择nohup脚本。由于命令,nohup可能会感到困惑。

#!/usr/bin/env 
#query.sh
sqlplus -S /NOLOG << %EOF% > engine_error.log
WHENEVER SQLERROR EXIT 1;
@$Level2/passFile server05
@engine_check.sql $stroke1 $bore1 
@engine_start.sql 
EOF

然后在你的shell中试试这个

nohup query.sh &

答案 1 :(得分:0)

如果您的脚本必须启动某些后台作业,请创建一个脚本,以使用&nohup脚本启动功能。
当您的脚本startit.sh看起来像

function f1 {
   echo "f1 start"
   sleep 2
   echo "f1 end"
}

function f2 {
   echo "f2 start"
   sleep 1
   echo "f2 end"
}

function f3 {
   echo "f3 start"
   sleep 1
   cat <<END
f3 start here
more f3
f3 end here
END
   echo "f3 end"
}

f1 &
f2
f3 &

致电nohup startit.sh

答案 2 :(得分:0)

问题是与EndOfMessage-String同一行中的“&”(或任何符号)。

“ EOF&”不等于“ EOF”->“内联脚本”仍在等待“ EOF”。 仅在“ <<”之后定义的字符串的行可以终结“内联脚本”: