执行后ssh不会返回

时间:2016-10-07 05:43:51

标签: linux ssh solaris

以下ssh命令不会返回终端。虽然执行完成但它会挂起。执行echo hi命令后挂起。

ssh user@testserver "echo hello;source .profile;source .bash_profile;/apps/myapp/deploytools/ciInstallAndRun.sh; echo hi"

输出

hello
<outoutfrom remote script"
hi

ciInstallAndRun.sh

echo 'starting'
cd /apps/myapp/current
./tctl kill
cd /apps/myapp

mv myapp_v1.0 "myapp_v1.0_`date '+%Y%m%d%H%M'`"
unzip -o /apps/myapp/myappdist-bin.zip
java -classpath .:/apps/myapp/deploytools/cleanup.jar se.telenor.project.cleanup.Cleanup /apps/myapp myapp_v1.0_ 3
cd /apps/myapp/myapp_v1.0
echo 'Done with deploy'
chmod -R 775 *
echo 'Done'

./tctl start test 

源操作系统:Redhat Dest Os:Solaris 10 8/07

有任何想法解决这个问题。

1 个答案:

答案 0 :(得分:3)

任何想法都可以解决这个问题。

您的安装脚本已生成子进程。

ps -f之前添加echo hiptree $$命令。您将看到安装脚本生成的子进程或多个子进程。

要停止SSH命令挂起,您需要从终端的输入/输出中分离此类子进程。您可以将脚本的输出转发到文件 - stdoutstderr > /some/output/file 2>&1将其输入重定向到{{1} }。

或者您可以使用nohup命令。

您还没有像其他人所说的那样提供过MCVE,但这可能是您安装脚本中的问题命令,因为您的问题意味着您会看到安装脚本的预期输出:

< /dev/null

你最好用以下代码替换它:

./tctl start test 
相关问题