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

Prevent nohup output when triggering a job on remote server

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

我正在运行命令行下运行远程服务器上的脚本。

ssh user@server.com "cd /cpmapps/soa/operations/bin/; ./restart_soa.sh stop"

但是当它 运行 时,它会意外地显示 'remote server script' 中命令的 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

然而,当我运行脚本所在服务器上的脚本时,它运行如预期的那样。如下图

家庭服务器

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

远程服务器

如何在远程服务器上 运行 使其与在本地服务器上 运行ning 相同? 非常感谢对此的任何帮助。

这样调用脚本:

nohup ./startManagedWebLogic.sh soa_server1 https://server:7002 > soa.out 2>&1 &

这会将输出写入文件 soa.out2>&1 会将所有 STDERR 作为 STDOUT 写入 soa.out,最后 & 将 运行 后台作业。

同时检查这个答案:

另一种方法是将您的 nohup 重定向到空设备。 例如:nohup ./script.py > /dev/null &