尝试在一个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% &
答案 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”。 仅在“ <<”之后定义的字符串的行可以终结“内联脚本”: