当命令返回不同于0的退出状态时,SSH连接自动closures

当我在我的VPS服务器上执行一个命令(例如:grep,cat,…),它返回非0的退出状态时,我的SSH连接会自动closures。 我不知道什么可能涉及这个问题…

你已经尝试过这样的问题吗? 任何build议?


因此,这个问题的演示:

1)我从我的电脑连接到我的VPS服务器:sylvain @ mycompute

sylvain@mycomputer:~$ ssh myuser@vps-server Last login: Sat Sep 9 17:02:30 2017 from 11.22.33.44 myuser@vps-server:~$ 

2)我创build一个脚本,从第一个参数获取退出状态:

 myuser@vps-server:~$ chmod u+x /tmp/test-exit-status.sh myuser@vps-server:~$ cat /tmp/test-exit-status.sh #!/bin/bash echo "Exit status will be '$1'." exit $1 

3)当退出状态为0时 ,保持SSH连接:

 myuser@vps-server:~$ /tmp/test-exit-status.sh 0 Exit status will be '0'. myuser@vps-server:~$ 

4)当退出状态不是0 (例如56)时,SSH连接会自动closures,在我的计算机上,SSH命令的退出状态是脚本的退出状态:

 myuser@vps-server:~$ /tmp/test-exit-status.sh 56 Exit status will be '56'. Connection to vps-server closed. sylvain@mycomputer:~$ echo $? 56 

听起来就像在~/.bashrc set -e

尝试set +e并重新运行testing,看看它是否再次做同样的事情。

我会考虑在你的~/.bashrc明确地添加set +e (或者删除一个set -e )来永久修复它。