Linux 在远程服务器上触发作业时防止nohup输出

Linux 在远程服务器上触发作业时防止nohup输出,linux,ssh,remote-server,nohup,Linux,Ssh,Remote Server,Nohup,在远程服务器上运行脚本时,我需要防止远程服务器的nohup输出显示在ssh服务器上 我正在命令行下运行,以便在远程服务器上运行脚本 ssh user@server.com "cd /cpmapps/soa/operations/bin/; ./restart_soa.sh stop" 但当它运行时,不可预测地在“远程服务器脚本”中显示命令的nohup输出。下面是脚本的摘录,您可以看到命令应该在后台运行 echo " Starting the weblogic Managed Server

在远程服务器上运行脚本时,我需要防止远程服务器的nohup输出显示在ssh服务器上

我正在命令行下运行,以便在远程服务器上运行脚本

ssh user@server.com "cd /cpmapps/soa/operations/bin/; ./restart_soa.sh stop"
但当它运行时,不可预测地在“远程服务器脚本”中显示命令的nohup输出。下面是脚本的摘录,您可以看到命令应该在后台运行

  echo " Starting the weblogic Managed Server SOA"
nohup ./startManagedWebLogic.sh soa_server1 https://server:7002 & > soa.out 1>&2&
sleep 180
ps_count=`netstat -an | grep 7002 | egrep "LISTEN" |grep -v grep|wc -l`
echo ps_count $ps_count
if [ "$ps_count" -ne "0" ];then
echo "managed server is up"
echo "proceeding with starting BAM"
else
echo "Failed to start weblogic"
exit 1
fi
但是,当我在脚本所在的服务器上运行脚本时,它会按预期运行。如下图所示

家庭服务器

当我从远程服务器运行它时,它也会显示命令的输出。如下图所示

远程服务器

如何使其在远程服务器上运行与在家庭服务器上运行相同的方式?
非常感谢您在这方面的帮助。

请用以下方式调用您的脚本:

nohup ./startManagedWebLogic.sh soa_server1 https://server:7002 > soa.out 2>&1 &
这将把输出写入文件
soa.out
2>&1
将所有
STDERR
作为
STDOUT
将其写入
soa.out
,最后一个
将在后台运行作业

  echo " Starting the weblogic Managed Server SOA"
nohup ./startManagedWebLogic.sh soa_server1 https://server:7002 & > soa.out 1>&2&
sleep 180
ps_count=`netstat -an | grep 7002 | egrep "LISTEN" |grep -v grep|wc -l`
echo ps_count $ps_count
if [ "$ps_count" -ne "0" ];then
echo "managed server is up"
echo "proceeding with starting BAM"
else
echo "Failed to start weblogic"
exit 1
fi

还请检查此答案:

另一种方法是将nohup重定向到空设备。 e、 g:nohup./script.py>/dev/null&